Linux

獲取包括所有執行緒或子程序的程序的總 %cpu,%mem?

  • May 5, 2021

獲取包括所有執行緒或子程序的程序的總 %cpu,%mem?

例如 rsync 如果您執行以下操作,您將僅獲得父程序的 %cpu,%mem。其中 9215 是活動 rsync 的 pid。

ps -p 9215 -o %cpu,%mem

如何獲得整個 rsync 程序(包括其執行緒或子程序)的全部、總 %cpu,%mem?

在 Linux 上,您可以將命令隔離到 cgroup 並獲取其總資源使用情況,即使它執行其他程序也是如此。

對於 systemd 系統上的一次性命令,創建一個臨時單元:systemd-run --unit=run rsync-script.sh 其中“run”是一些描述性名稱,“rsync-script.sh”是執行該操作的腳本。請參閱 cgroup 中的資源systemd-cgtop。實際上獲取數字需要預設啟用資源記帳,請參閱man systemd.resource-control


執行緒是不需要花哨的會計來獲得的簡單案例。程序報告其所有執行緒的 CPU 和私有記憶體總量。查看多個執行緒任務組pidstat -t

引用自:https://serverfault.com/questions/1062548