如何在Linux系統上檢視按實際記憶體使用量排序的頂部程序?


Linux 提供了著名的 **top** 命令實用程式,它可以提供有關程序、其執行時間、各自的 ID、它們消耗的 CPU 資源等等資訊。唯一的問題是程序沒有按照任何順序排序,並且順序會頻繁變化。

在某些情況下,我們希望輸出以某種排序方式顯示,例如按記憶體使用量排序,記憶體使用量最高的程序排在最前面。

最基本的方法是使用 Linux 提供的 **ps** 命令,並附加類似的命令,主要是 **--sort** 標籤和 **mem** 命令。

在使用 **ps** 命令列印記憶體消耗最大的程序之前,讓我們先了解一下它。

第一個命令是 Linux 作業系統的 **ps** 命令。**ps** 命令是“程序狀態”的縮寫,用於列出當前在 Linux 機器上執行的程序,以及它們的 PID 和其他選項。

語法

ps ef | [ - options ]

讓我們舉兩個例子,第一個例子將列印在你的 Ubuntu 機器上執行的所有程序,第二個例子將列印特定服務是否正在執行。

命令

ps ef

輸出

UID PID PPID C  STIME  TTY    TIME        CMD
 0   1   0   0  25Jun21 ??  19:53.44  /sbin/launchd
 0  56   1   0  25Jun21 ??   0:41.68  /usr/sbin/syslogd
 0  57   1   0  25Jun21 ??   0:59.28  /usr/libexec/UserEventAgent (System)

上述命令的輸出非常龐大,所以我只列印了一部分,需要注意的是輸出可能會有所不同。

現在我們對 **ps** 命令有了一些瞭解,讓我們看看將給我們所需輸出的命令。

命令

ps aux --sort ‘%mem’

輸出

USER     PID %CPU %MEM   VSZ     RSS  TTY
...
root    1284 1.5  3.7  452692  142796 tty7
immukul 2286 0.3  3.8 1316000  143312 ?
immukul 5150 0.0  4.4  660620  168488 pts/0
immukul 5147 0.0  4.5  660556  170920 pts/0
immukul 5142 0.1  6.3 2581944  239408 pts/0
immukul 2386 3.6 16.0 1752740  605372 ?

正如我們在上面的輸出中看到的,程序按它們消耗的記憶體從小到大排序。

另一種選擇是使用 **top** 命令本身,並按照以下步驟操作

在你的終端中鍵入 **top** 後,按 **SHIFT + M**,然後在互動式選單中按程序記憶體排序。最後,執行以下命令

top -o +%mem

輸出

USER     PID %CPU %MEM  VSZ    RSS   TTY
...
root    1284 1.5  3.7 452692  142796 tty7
immukul 2286 0.3  3.8 1316000 143312 ?
immukul 5150 0.0  4.4 660620  168488 pts/0
immukul 5147 0.0  4.5 660556  170920 pts/0
immukul 5142 0.1  6.3 2581944 239408 pts/0
immukul 2386 3.6 16.0 1752740 605372 ?

更新於:2021年7月30日

360 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.