頂部命令

頂部命令

是否有任何可能的命令或方法來檢查哪個進程在過去24 小時內導致了高cpu 利用率,因為昨晚11:30 pm date:-30-nov-2022 我們收到了cpu 利用率很高的警報,因此需要弄清楚哪個進程導致利用率高。

答案1

薩爾

您可以使用薩爾。它作為 sysstat 的一部分包含在內。安裝:

sudo apt-get install sysstat

接下來,透過編輯 /etc/default/sysstat 並將「ENABLED」設為 true 來啟用它。

這樣做可以監控您的系統並每 10 分鐘產生一份報告,並在一周後輪換。您可以透過編輯 /etc/cron.d/sysstat 中的 sysstat crontab 或變更 /etc/sysstat/sysstat 中 sysstat 設定中的輪換設定來修改此行為。

您可以使用以下命令產生即時報告:

sar -u 1 3

sysstat會每分鐘收集後台CPU使用數據,並將其儲存到/var/log/sysstat/。然後,您可以使用電子表格程式或 sargraph 等自訂工具匯入此資料進行分析。

在頂上

另一種方法是使用在頂上它能夠將原始計數器儲存在檔案中,以便在系統層級進行長期分析,並且流程級。預設情況下,每日日誌檔案保留 28 天。可以使用 atopsar 指令從日誌檔案產生系統活動報告。

atop 可在 ubuntu 儲存庫中透過以下方式取得:sudo apt install atop

答案2

頂部命令

批次模式下的頂部

top -b -n 1

然後用Sed把它撈出來

top -b -n 1 | sed -n 8,8p

答案3

直接存取日誌文件

/var/log/系統日誌

用 grep 將其慢燉

cat /var/log/syslog | grep Nov | grep 30 | grep  11: | grep pid=

答案4

處理命令

進程狀態 (ps)

ps
    ps -eo lstart,pid,時間,用戶,通訊,pcpu |\
    grep 2022 |\
    grep 十一月 |\
    grep pm |\
    grep 11 |\
    排序-n -k 10 -r |\
    頭——第 1 行

說明

ps(進程狀態)
-e(所有進程)
-o(格式化輸出)
lstart(長啟動)
pid(進程標識)
時間(時間)
用戶(用戶)
通訊(命令)
pcpu(CPU 使用百分比)

輸出透過管道傳輸到另一個程式 grep。

2022 | grep 2022 grep 十一月 | grep 下午 |正規表示式 11

然後按數字和包含 CPU 百分比的欄位進行排序

 
排序-n -k 10 -r
-n(數字)
-k(列)
-r(反向)

然後透過管道連接到 head 以僅允許第一行通過

頭——第 1 行

相關內容