Linux
跟踪一段時間內的使用者 CPU 使用情況
我需要跟踪單個使用者呼叫的程序數量以及這些程序在給定時間段內消耗的 CPU 時間(或 % )。
訣竅在於,這些程序中的每一個通常執行一瞬間並且幾乎不消耗 CPU,但它們每秒被呼叫很多時間。因此“ps -eo user,pid,pcpu,time,args”不可靠。
最後,我想要一份報告說:“使用者 foobar 在最後 xx 秒內消耗了 xxx CPU-TIME/CPU%”
有誰知道我該如何實現它?作業系統是 AIX7.1,但這個問題也適用於 Linux RHEL7。
提前致謝。
在 AIX 上,您可以啟用記帳子系統並結合使用acctprc1 和 prtacct 命令來顯示使用者的 CPU 使用情況。
您可以在理論上使用(Linux)cgroups。您將創建自定義 cgroup,所有使用者程序都將在其中執行。然後只需注意 cgroup CPU 計時記帳(系統和使用者時間總和),您將能夠根據這些值計算選定時間段內的總 %CPU 使用率。
文件:https ://www.kernel.org/doc/Documentation/cgroup-v1/cpuacct.txt