如何檢查Linux的內存使用狀況

原文:http://ask.xmodulo.com/check-memory-usage-linux.html
譯文:LCTT  http://linux.cn/article-4836-1.html譯者: mr-ping


當涉及到Linux系統性能優化的時候,物理內存是一個最重要的因素。自然的,Linux提供了豐富的選擇來監測珍貴的內存資源的使用情況。不同的工具,在監測粒度(例如:全系統範圍,每個進程,每個用戶),接口方式(例如:圖形用戶界面,命令行,ncurses)或者運行模式(交互模式,批量處理模式)上都不盡相同。

下面是一個可供選擇的,但並不全面的圖形或命令行工具列表,這些工具用來檢查Linux平臺中已用和可用的內存。

1. /proc/meminfo

一種最簡單的方法是通過“/proc/meminfo”來檢查內存使用狀況。這個動態更新的虛擬文件事實上是諸如free,top和ps這些與內存相關的工具的信息來源。從可用/閒置物理內存數量到等待被寫入緩存的數量或者已寫回磁盤的數量,只要是你想要的關於內存使用的信息,“/proc/meminfo”應有盡有。特定進程的內存信息也可以通過“/proc/<pid>/statm”和“/proc/<pid>/status”來獲取。

  1. $ cat /proc/meminfo

2. atop

atop命令是用於終端環境的基於ncurses的交互式的系統和進程監測工具。它展示了動態更新的系統資源摘要(CPU, 內存, 網絡, 輸入/輸出, 內核),並且用醒目的顏色把系統高負載的部分以警告信息標註出來。它同樣提供了類似於top的線程(或用戶)資源使用視圖,因此係統管理員可以找到哪個進程或者用戶導致的系統負載。內存統計報告包括了總計/閒置內存,緩存的/緩衝的內存和已提交的虛擬內存。

  1. $ sudo atop

3. free

free命令是一個用來獲得內存使用概況的快速簡單的方法,這些信息從“/proc/meminfo”獲取。它提供了一個快照,用於展示總計/閒置的物理內存和系統交換區,以及已使用/閒置的內核緩衝區。

  1. $ free -h

4. GNOME System Monitor

GNOME System Monitor 是一個圖形界面應用,它展示了包括CPU,內存,交換區和網絡在內的系統資源使用率的較近歷史信息。它同時也可以提供一個帶有CPU和內存使用情況的進程視圖。

  1. $ gnome-system-monitor

5. htop

htop命令是一個基於ncurses的交互式的進程視圖,它實時展示了每個進程的內存使用情況。它可以報告所有運行中進程的常駐內存大小(RSS)、內存中程序的總大小、庫大小、共享頁面大小和髒頁面大小。你可以橫向或者縱向滾動進程列表進行查看。

  1. $ htop

6. KDE System Monitor

就像GNOME桌面擁有GNOME System Monitor一樣,KDE桌面也有它自己的對口應用:KDE System Monitor。這個工具的功能與GNOME版本極其相似,也就是說,它同樣展示了一個關於系統資源使用情況,以及帶有每個進程的CPU/內存消耗情況的實時歷史記錄。

  1. $ ksysguard


7. memstat

memstat工具對於識別正在消耗虛擬內存的可執行部分、進程和共享庫非常有用。給出一個進程識別號,memstat即可識別出與之相關聯的可執行部分、數據和共享庫究竟使用了多少虛擬內存。

  1. $ memstat -p <PID>

8. nmon

nmon工具是一個基於ncurses系統基準測試工具,它能夠以交互方式監測CPU、內存、磁盤I/O、內核、文件系統以及網絡資源。對於內存使用狀況而言,它能夠展示像總計/閒置內存、交換區、緩衝的/緩存的內存,虛擬內存頁面換入換出的統計,所有這些都是實時的。

  1. $ nmon

9. ps

ps命令能夠實時展示每個進程的內存使用狀況。內存使用報告裏包括了 %MEM (物理內存使用百分比), VSZ (虛擬內存使用總量), 和 RSS (物理內存使用總量)。你可以使用“--sort”選項來對進程列表排序。例如,按照RSS降序排序:

  1. $ ps aux --sort -rss

10. smem

smem命令允許你測定不同進程和用戶的物理內存使用狀況,這些信息來源於“/proc”目錄。它利用“按比例分配大小(PSS)”指標來精確量化Linux進程的有效內存使用情況。內存使用分析結果能夠輸出爲柱狀圖或者餅圖類的圖形化圖表。

  1. $ sudo smem --pie name -c "pss"

11. top

top命令提供了一個運行中進程的實時視圖,以及特定進程的各種資源使用統計信息。與內存相關的信息包括 %MEM (內存使用率), VIRT (虛擬內存使用總量), SWAP (換出的虛擬內存使用量), CODE (分配給代碼執行的物理內存數量), DATA (分配給非執行的數據的物理內存數量), RES (物理內存使用總量; CODE+DATA), 和 SHR (有可能與其他進程共享的內存數量)。你能夠基於內存使用情況或者大小對進程列表進行排序。

12. vmstat

vmstat命令行工具顯示涵蓋了CPU、內存、中斷和磁盤I/O在內的各種系統活動的瞬時和平均統計數據。對於內存信息而言,命令不僅僅展示了物理內存使用情況(例如總計/已使用內存和緩衝的/緩存的內存),還同樣展示了虛擬內存統計數據(例如,內存頁的換入/換出,虛擬內存頁的換入/換出)

  1. $ vmstat -s



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章