我有一个脚本报告特定程序从 pidstat 读取值的 CPU 使用情况。该脚本启动为:
pidstat -C ^frontend$ -h -l -p ALL 1 1
Run Code Online (Sandbox Code Playgroud)
以这种方式报告的值有时会超过 100% 的 cpu 使用率,这是不可能的,因为该进程是单头的。
在上下尝试找出可能导致这种行为的原因之后,我尝试简单地增加 pidstat 收集信息的时间,并发现令人惊讶的是,这些值往往更合理:
pidstat -C ^frontend$ -h -l -p ALL 1 10
Linux 3.13.0-32-generic (eu-123) 09/22/2014 _x86_64_ (8 CPU)
# Time PID %usr %system %guest %CPU CPU Command
1411396853 15884 28.43 29.41 0.00 57.84 1 /srv/propulsor/frontend-01/frontend
1411396853 15911 33.33 32.35 0.00 65.69 2 /srv/propulsor/frontend-02/frontend
1411396853 15968 58.82 0.00 0.00 58.82 3 /srv/propulsor/frontend-03/frontend
# Time PID %usr %system %guest %CPU CPU Command …
Run Code Online (Sandbox Code Playgroud)