1. 程式人生 > >Linux面試常問-記憶體命令

Linux面試常問-記憶體命令

Q:我想監視Linux系統的記憶體使用情況,在Linux下有哪些檢視或者命令列工具可用呢?

在做Linux系統優化的時候,實體記憶體是其中最重要的一方面。自然的,Linux也提供了非常多的方法來監控寶貴的記憶體資源的使用情況。下面的清單詳細的列出了Linux系統下通過檢視工具或命令列來檢視記憶體使用情況的各種方法。

1. /proc/meminfo

檢視RAM使用情況最簡單的方法是通過 /proc/meminfo。這個動態更新的虛擬檔案實際上是許多其他記憶體相關工具(如:free / ps / top)等的組合顯示。/proc/meminfo列出了所有你想了解的記憶體的使用情況。程序的記憶體使用資訊也可以通過 /proc//statm 和 /proc//status 來檢視。

1 $ cat /proc/meminfo

/proc/meminfo

2. atop

atop命令是一個終端環境的監控命令。它顯示的是各種系統資源(CPU, memory, network, I/O, kernel)的綜合,並且在高負載的情況下進行了彩色標註。

1 $ sudo atop

atop

3. free

free命令是一個快速檢視記憶體使用情況的方法,它是對 /proc/meminfo 收集到的資訊的一個概述。

1 $ free -h

free

4. GNOME System Monitor

GNOME System Monitor 是一個顯示最近一段時間內的CPU、記憶體、交換區及網路的使用情況的檢視工具。它還提供了一種檢視CPU及記憶體使用情況的方法。

1 $ gnome-system-monitor

gnome-system-monitor

5. htop

htop命令顯示了每個程序的記憶體實時使用率。它提供了所有程序的常駐記憶體大小、程式總記憶體大小、共享庫大小等的報告。列表可以水平及垂直滾動。

1 $ htop

$ htop

6. KDE System Monitor

功能同 4 中介紹的GENOME版本。

1 $ ksysguard

$ ksysguard

7. memstat

memstat是一個有效識別 executable(s), process(es) and shared libraries使用虛擬記憶體情況的命令。給定一個程序ID,memstat可以列出這個程序相關的可執行檔案、資料和共享庫。

1 $ memstat -p

memstat

8. nmon

nmon是一個基於ncurses的系統基準測試工具,它可以監控CPU、記憶體、I/O、檔案系統及網路資源等的互動模式。對於記憶體的使用,它可以實時的顯示 總/剩餘記憶體、交換空間等資訊。

1 $ nmon

nmon

9. ps

ps命令可以實時的顯示各個程序的記憶體使用情況。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort”選項對程序進行排序,例如按RSS進行排序:

1 $ ps aux --sort -rss

ps

10. smem

smem命令允許你統計基於/proc資訊的不同程序和使用者的記憶體使用情況。記憶體使用情況的分析可以匯出圖表(如條形圖和餅圖)。

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

smem

11. top

top命令提供了實時的執行中的程式的資源使用統計。你可以根據記憶體的使用和大小來進行排序。

1 $ top

linux-memory-11

12. vmstat

vmstat命令顯示實時的和平均的統計,覆蓋CPU、記憶體、I/O等內容。例如記憶體情況,不僅顯示實體記憶體,也統計虛擬記憶體。

1 $ vmstat -s