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

jopen 9年前發布 | 16K 次閱讀 Linux

問題:我想要監測Linux系統的內存使用狀況。有哪些可用的圖形界面或者命令行工具來檢查當前內存使用情況?

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

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

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

1. /proc/meminfo

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

$ cat /proc/meminfo

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

2. atop

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

$ sudo atop

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

3. free

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

$ free -h

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

4. GNOME System Monitor

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

$ gnome-system-monitor

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

5. htop

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

$ htop

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

6. KDE System Monitor

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

$ ksysguard

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

 

7. memstat

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

$ memstat -p <PID>

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

8. nmon

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

$ nmon

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

9. ps

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

$ ps aux --sort -rss

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

10. smem

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

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

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

11. top

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

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

12. vmstat

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

$ vmstat -s

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


via: http://ask.xmodulo.com/check-memory-usage-linux.html

譯者:Ping 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!