在排查系統(tǒng)問題,或者應用變慢,或者不明原因問題時,第一件事就是要檢查系統(tǒng)的內(nèi)存使用率。
本文講解如何在 Linux 中使用不同的幾個命令來檢查 RAM 內(nèi)存使用率。
一、free 命令
free
命令是檢查一個 Linux 系統(tǒng)中內(nèi)存使用率最常用的命令。它顯示關(guān)于內(nèi)存總量,已經(jīng)使用的內(nèi)存以及空閑內(nèi)存的相關(guān)信息。
通常, free
運行時加上-h
選項,意味著以人類可讀的格式打印輸出:
total used free shared buff/cache available
Mem: 3936 1087 252 130 2596 2427
Swap: 0 0 0
這里是每一列的意義:
- total - 應用可以使用的內(nèi)存總數(shù)
- used - 已經(jīng)被使用的內(nèi)存。 它是這樣計算的:
used = total - free - buffers - cache
- free - 空閑的/未被使用的內(nèi)存。
- shared - 這一列可以被忽略。 它僅僅用于向后兼容。
- buff/cache - 內(nèi)核緩存,頁面緩存和slab
- avaiable - 可用來啟動新應用的估計可用內(nèi)存,不包括交換內(nèi)存。
這個free命令打印關(guān)于物理內(nèi)存和交換內(nèi)存的信息。
二、top 命令
top
是一個命令工具,它展示正在運行的進程的實時信息。它同時顯示系統(tǒng)概要,包括內(nèi)存使用率。
想要運行命令,簡單輸入top
:
輸出將會看起來像下面這樣:
輸出頭部包括以下信息:系統(tǒng)中內(nèi)存,空閑內(nèi)存,被使用內(nèi)存,以及交換內(nèi)存。
這個%MEM一列,提供信息包括每一個運行進程中被使用的共享內(nèi)存占可用物理內(nèi)存的比例。
三、 /proc/meminfo
最簡單的檢查 RAM 內(nèi)存的方式就是去顯示/proc/meminfo
虛擬文件。這個文件被free
,top
,ps
以及其他系統(tǒng)信息命令所使用。
使用less
或者cat
來查看/proc/meminfo
文件的內(nèi)容。
文件包含了一系列信息,關(guān)于系統(tǒng)內(nèi)存和交換內(nèi)存使用率:
MemTotal: 4030592 kB
MemFree: 401804 kB
MemAvailable: 2507504 kB
...
這個來自/proc/meminfo
文件的信息可以被解析,并且在 shell 腳本中使用。
四、 ps_mem 腳本
ps_mem 是一個 Python 腳本,他可以報告每個程序的 RAM 使用率。它在 Python 2 和 3 中都可以使用,并且可以使用pip
進行安裝。
運行ps_mem
需要管理員權(quán)限:
輸出將會以升序顯示包括每一個運行程序的內(nèi)存使用率:
Private + Shared = RAM used Program
...
11.9 MiB + 20.2 MiB = 32.1 MiB nginx (4)
8.2 MiB + 42.4 MiB = 50.6 MiB systemd-journald
55.8 MiB + 307.2 MiB = 363.0 MiB php-fpm7.4 (6)
233.9 MiB + 234.0 MiB = 467.9 MiB redis-server
578.2 MiB + 578.6 MiB = 1.1 GiB mysqld
---------------------------------
2.2 GiB
=================================
五、總結(jié)
我們已經(jīng)向你展示一些命令,你可以使用它們來檢查系統(tǒng)內(nèi)存使用率。
原文 :https://linuxize.com/post/check-memory-linux/
以上就是Linux 下如何檢查內(nèi)存使用率的詳細內(nèi)容,更多關(guān)于Linux 檢查內(nèi)存使用率的資料請關(guān)注腳本之家其它相關(guān)文章!