Debian

如何查看最近的系統活動以找出導致大幅減速的原因?

  • July 19, 2013

我在聯想 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更改格式以顯示psCPU 和記憶體使用情況等等。

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

引用自:https://unix.stackexchange.com/questions/83309