Linux有問必答:如何檢查Linux的內存使用狀況
![](https://linuxstory.org/wp-content/uploads/2024/06/092459ic9k4ksm9hn1b2j8.png)
下面是一個可供選擇的,但並不全面的圖形或命令行工具列表,這些工具用來檢查Linux平台中已用和可用的內存。
1. /proc/meminfo
一種最簡單的方法是通過「/proc/meminfo」來檢查內存使用狀況。這個動態更新的虛擬文件事實上是諸如free,top和ps這些與內存相關的工具的信息來源。從可用/閑置物理內存數量到等待被寫入緩存的數量或者已寫回磁碟的數量,只要是你想要的關於內存使用的信息,「/proc/meminfo」應有盡有。特定進程的內存信息也可以通過「/proc/
$ cat /proc/meminfo
2. atop
atop命令是用於終端環境的基於ncurses的互動式的系統和進程監測工具。它展示了動態更新的系統資源摘要(CPU, 內存, 網路, 輸入/輸出, 內核),並且用醒目的顏色把系統高負載的部分以警告信息標註出來。它同樣提供了類似於top的線程(或用戶)資源使用視圖,因此系統管理員可以找到哪個進程或者用戶導致的系統負載。內存統計報告包括了總計/閑置內存,緩存的/緩衝的內存和已提交的虛擬內存。
$ sudo atop
3. free
free命令是一個用來獲得內存使用概況的快速簡單的方法,這些信息從「/proc/meminfo」獲取。它提供了一個快照,用於展示總計/閑置的物理內存和系統交換區,以及已使用/閑置的內核緩衝區。
$ free -h
4. GNOME System Monitor
GNOME System Monitor 是一個圖形界面應用,它展示了包括CPU,內存,交換區和網路在內的系統資源使用率的較近歷史信息。它同時也可以提供一個帶有CPU和內存使用情況的進程視圖。
$ gnome-system-monitor
5. htop
htop命令是一個基於ncurses的互動式的進程視圖,它實時展示了每個進程的內存使用情況。它可以報告所有運行中進程的常駐內存大小(RSS)、內存中程序的總大小、庫大小、共享頁面大小和臟頁面大小。你可以橫向或者縱向滾動進程列表進行查看。
$ htop
6. KDE System Monitor
就像GNOME桌面擁有GNOME System Monitor一樣,KDE桌面也有它自己的對口應用:KDE System Monitor。這個工具的功能與GNOME版本極其相似,也就是說,它同樣展示了一個關於系統資源使用情況,以及帶有每個進程的CPU/內存消耗情況的實時歷史記錄。
$ ksysguard
7. memstat
memstat工具對於識別正在消耗虛擬內存的可執行部分、進程和共享庫非常有用。給出一個進程識別號,memstat即可識別出與之相關聯的可執行部分、數據和共享庫究竟使用了多少虛擬內存。
$ memstat -p <PID>
8. nmon
nmon工具是一個基於ncurses系統基準測試工具,它能夠以交互方式監測CPU、內存、磁碟I/O、內核、文件系統以及網路資源。對於內存使用狀況而言,它能夠展示像總計/閑置內存、交換區、緩衝的/緩存的內存,虛擬內存頁面換入換出的統計,所有這些都是實時的。
$ nmon
9. ps
ps命令能夠實時展示每個進程的內存使用狀況。內存使用報告里包括了 %MEM (物理內存使用百分比), VSZ (虛擬內存使用總量), 和 RSS (物理內存使用總量)。你可以使用「--sort」選項來對進程列表排序。例如,按照RSS降序排序:
$ ps aux --sort -rss
10. smem
smem命令允許你測定不同進程和用戶的物理內存使用狀況,這些信息來源於「/proc」目錄。它利用「按比例分配大小(PSS)」指標來精確量化Linux進程的有效內存使用情況。內存使用分析結果能夠輸出為柱狀圖或者餅圖類的圖形化圖表。
$ sudo smem --pie name -c "pss"
11. top
top命令提供了一個運行中進程的實時視圖,以及特定進程的各種資源使用統計信息。與內存相關的信息包括 %MEM (內存使用率), VIRT (虛擬內存使用總量), SWAP (換出的虛擬內存使用量), CODE (分配給代碼執行的物理內存數量), DATA (分配給非執行的數據的物理內存數量), RES (物理內存使用總量; CODE+DATA), 和 SHR (有可能與其他進程共享的內存數量)。你能夠基於內存使用情況或者大小對進程列表進行排序。
12. vmstat
vmstat命令行工具顯示涵蓋了CPU、內存、中斷和磁碟I/O在內的各種系統活動的瞬時和平均統計數據。對於內存信息而言,命令不僅僅展示了物理內存使用情況(例如總計/已使用內存和緩衝的/緩存的內存),還同樣展示了虛擬內存統計數據(例如,內存頁的換入/換出,虛擬內存頁的換入/換出)
$ vmstat -s
via: http://ask.xmodulo.com/check-memory-usage-linux.html
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive