我需要跟踪单个用户调用的进程数量以及这些进程在给定时间段内消耗的 CPU 时间(或 % )。
诀窍在于,这些进程中的每一个通常运行一瞬间并且几乎不消耗 CPU,但它们每秒被调用很多时间。因此“ps -eo user,pid,pcpu,time,args”不可靠。
最后,我想要一份报告说:“用户 foobar 在最后 xx 秒内消耗了 xxx CPU-TIME/CPU%”
有谁知道我该如何实现它?操作系统是 AIX7.1,但这个问题也适用于 Linux RHEL7。
提前致谢。
我需要跟踪单个用户调用的进程数量以及这些进程在给定时间段内消耗的 CPU 时间(或 % )。
诀窍在于,这些进程中的每一个通常运行一瞬间并且几乎不消耗 CPU,但它们每秒被调用很多时间。因此“ps -eo user,pid,pcpu,time,args”不可靠。
最后,我想要一份报告说:“用户 foobar 在最后 xx 秒内消耗了 xxx CPU-TIME/CPU%”
有谁知道我该如何实现它?操作系统是 AIX7.1,但这个问题也适用于 Linux RHEL7。
提前致谢。
您可以在理论上使用(Linux)cgroups。您将创建自定义 cgroup,所有用户进程都将在其中运行。然后只需注意 cgroup CPU 计时记帐(系统和用户时间总和),您将能够根据这些值计算选定时间段内的总 %CPU 使用率。
文档:https ://www.kernel.org/doc/Documentation/cgroup-v1/cpuacct.txt
在 AIX 上,您可以启用记帐子系统并结合使用acctprc1 和 prtacct 命令来显示用户的 CPU 使用情况。