問題:我想要監測linux系統的記憶體使用狀況。有哪些可用的圖形界面或者指令行工具來檢查目前記憶體使用情況?
當涉及到linux系統性能優化的時候,實體記憶體是一個最重要的因素。自然的,linux提供了豐富的選擇來監測珍貴的記憶體資源的使用情況。不同的工具,在監測粒度(例如:全系統範圍,每個程序,每個使用者),接口方式(例如:圖形使用者界面,指令行,ncurses)或者運作模式(互動模式,批量處理模式)上都不盡相同。

下面是一個可供選擇的,但并不全面的圖形或指令行工具清單,這些工具用來檢查linux平台中已用和可用的記憶體。
<a target="_blank"></a>
一種最簡單的方法是通過“/proc/meminfo”來檢查記憶體使用狀況。這個動态更新的虛拟檔案事實上是諸如free,top和ps這些與記憶體相關的工具的資訊來源。從可用/閑置實體記憶體數量到等待被寫入緩存的數量或者已寫回磁盤的數量,隻要是你想要的關于記憶體使用的資訊,“/proc/meminfo”應有盡有。特定程序的記憶體資訊也可以通過“/proc/<pid>/statm”和“/proc/<pid>/status”來擷取。
$ cat /proc/meminfo
atop指令是用于終端環境的基于ncurses的互動式的系統和程序監測工具。它展示了動态更新的系統資源摘要(cpu, 記憶體, 網絡, 輸入/輸出, 核心),并且用醒目的顔色把系統高負載的部分以警告資訊标注出來。它同樣提供了類似于top的線程(或使用者)資源使用視圖,是以系統管理者可以找到哪個程序或者使用者導緻的系統負載。記憶體統計報告包括了總計/閑置記憶體,緩存的/緩沖的記憶體和已送出的虛拟記憶體。
$ sudo atop
free指令是一個用來獲得記憶體使用概況的快速簡單的方法,這些資訊從“/proc/meminfo”擷取。它提供了一個快照,用于展示總計/閑置的實體記憶體和系統交換區,以及已使用/閑置的核心緩沖區。
$ free -h
gnome system monitor 是一個圖形界面應用,它展示了包括cpu,記憶體,交換區和網絡在内的系統資源使用率的較近曆史資訊。它同時也可以提供一個帶有cpu和記憶體使用情況的程序視圖。
$ gnome-system-monitor
htop指令是一個基于ncurses的互動式的程序視圖,它實時展示了每個程序的記憶體使用情況。它可以報告所有運作中程序的常駐記憶體大小(rss)、記憶體中程式的總大小、庫大小、共享頁面大小和髒頁面大小。你可以橫向或者縱向滾動程序清單進行檢視。
$ htop
就像gnome桌面擁有gnome system monitor一樣,kde桌面也有它自己的對口應用:kde system monitor。這個工具的功能與gnome版本極其相似,也就是說,它同樣展示了一個關于系統資源使用情況,以及帶有每個程序的cpu/記憶體消耗情況的實時曆史記錄。
$ ksysguard
memstat工具對于識别正在消耗虛拟記憶體的可執行部分、程序和共享庫非常有用。給出一個程序識别号,memstat即可識别出與之相關聯的可執行部分、資料和共享庫究竟使用了多少虛拟記憶體。
$ memstat -p <pid>
nmon工具是一個基于ncurses系統基準測試工具,它能夠以互動方式監測cpu、記憶體、磁盤i/o、核心、檔案系統以及網絡資源。對于記憶體使用狀況而言,它能夠展示像總計/閑置記憶體、交換區、緩沖的/緩存的記憶體,虛拟記憶體頁面換入換出的統計,所有這些都是實時的。
$ nmon
ps指令能夠實時展示每個程序的記憶體使用狀況。記憶體使用報告裡包括了 %mem (實體記憶體使用百分比), vsz (虛拟記憶體使用總量), 和 rss (實體記憶體使用總量)。你可以使用“--sort”選項來對程序清單排序。例如,按照rss降序排序:
$ ps aux --sort -rss
$ sudo smem --pie name -c "pss"
top指令提供了一個運作中程序的實時視圖,以及特定程序的各種資源使用統計資訊。與記憶體相關的資訊包括 %mem (記憶體使用率), virt (虛拟記憶體使用總量), swap (換出的虛拟記憶體使用量), code (配置設定給代碼執行的實體記憶體數量), data (配置設定給非執行的資料的實體記憶體數量), res (實體記憶體使用總量; code+data), 和 shr (有可能與其他程序共享的記憶體數量)。你能夠基于記憶體使用情況或者大小對程序清單進行排序。
vmstat指令行工具顯示涵蓋了cpu、記憶體、中斷和磁盤i/o在内的各種系統活動的瞬時和平均統計資料。對于記憶體資訊而言,指令不僅僅展示了實體記憶體使用情況(例如總計/已使用記憶體和緩沖的/緩存的記憶體),還同樣展示了虛拟記憶體統計資料(例如,記憶體頁的換入/換出,虛拟記憶體頁的換入/換出)
$ vmstat -s
原文釋出時間:2015-02-06
本文來自雲栖合作夥伴“linux中國”