
是否有任何可能的命令或方法來檢查哪個進程在過去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 行