如何查看最近的系統活動以找出導致大幅減速的原因?
我在聯想 e420 上執行帶有 OpenBox 的 CrunchBang Waldorf。幾個月前我從 Windows 切換過來,從那時起就沒有出現性能問題。一切執行良好且快速。
今天,我正在為我的工作設置嘗試一些新的選項。我安裝了 XFCE,從 SLiM 登錄並玩了一下。回到 OpenBox,並弄亂了一個新的終端仿真器(rxvt-Unicode)。我使用命令行選項來查看我喜歡的視覺外觀。
在這樣做一段時間後,終端視窗開始緩慢載入。我使用 ARandR 切換到雙屏設置,此時系統緩慢爬行了幾分鐘。這是以前從未發生過的。
我已經將我的 rxvt 視窗配置為使用 Fish shell 打開,並且還使用了透明效果,所以我認為幾個因素中的任何一個都可能導致性能緩慢:透明度、在我不知情的情況下安裝的新 XFCE、Fish 等(但坦率地說,這些程序都不應該導致這種減速……對吧?)
長話短說,如果將來發生這種情況,我將如何追踪它?有小費嗎?我希望有一些日誌文件可以告訴我在過去 30 分鐘內甚麼時間執行了哪些後台程序。
有多種工具可以檢查哪些程序正在使用多少 CPU 和記憶體。
在大多數情況下,當您的系統變慢時,要麼是某個程序使用了所有 CPU,要麼您的記憶體已滿。
ps
在所有系統上,您都應該找到top
它們都是顯示所有程序列表的命令行工具。
top
是一個小型互動式程序,按排序順序顯示程序,每兩秒刷新一次。top
您可以通過按退出q
,您將通過按 獲得其餘命令的top
幫助?
。更高級
top
的是htop
您必須安裝。它的互動性top
更強,顏色也更多,而且它使用的鍵盤命令與top
.有時您的系統可能非常緩慢,甚至
top
難以使用htop
。然後你可以使用ps
. 當您在沒有任何參數的情況下執行它時,它會提供您通過控制台啟動的程序,這在桌面上不是很有用。通常我跑
ps -aux
這為您提供了系統上執行的所有程序的列表。這
-a
意味著顯示來自所有使用者的所有程序,-x
意味著顯示所有程序,即使是那些未在正常控制台上啟動的程序。總之在桌面上使用總是ps ax
。
-u
更改格式以顯示ps
CPU 和記憶體使用情況等等。對
ps
你的輸出進行排序-m
,並且-r
。 按記憶體消耗和CPU消耗-m
排序。這些我通常與只給出第一行-r
的命令結合使用,像這樣head -$N``$N
ps -raux | head -11
如果您想每 2 秒獲得前 5 個記憶體使用者,您可以在 Linux 上使用以下
watch
命令執行此操作watch "ps -maux | head -6"
watch
您可以通過按退出Ctrl+c.
當您想知道總共有多少記憶體以及所有程序使用了多少記憶體時,您可以使用該
free
命令。它顯示 RAM 和交換分區的已用、空閒、緩衝區和記憶體記憶體量。如果交換中使用的記憶體量太高,則可以很好地指示出問題所在。對於所有這些命令,您可以通過鍵入獲得手冊頁,然後按 q 退出。
man $COMMAND
例如
man ps