对于单个 Firefox 浏览器进程,Ubuntu Linux 16.10 系统监视器 % CPU 使用率与 ps pcpu, % CPU 使用率之间出现以下差异的原因是什么?
对于 Firefox 浏览器应用程序,我从 ps -eo pid,rss,c,pcpu,cmd 获得 2.8% pcpu,而对于同一个 Firefox 浏览器应用程序,GUI 应用程序 Ubuntu 系统监视器显示 0% CPU 利用率。
请问为什么会出现这种差异?
Unix Linux Stack Exchange 专家 @DopeGhoti 对于这种差异的假设是:
ps 可能正在报告当时的实际 CPU 使用情况,但 GUI 应用程序可能会显示过去 n 秒内的聚合使用情况,或者可能滚动来自子进程或 iowait 使用情况的 CPU 使用情况。
有人可以扩展这个假设吗?
任何帮助是极大的赞赏。
答案1
使用 Firefox 进程测试 @DopeGhoti 的假设一小时后
“ps 可能正在报告当时的实际 CPU 使用情况,但 GUI 应用程序可能会显示过去 n 秒内的聚合使用情况,或者可能滚动来自子进程或 iowait 使用情况的 CPU 使用情况”
我发现它基本上是正确的,除了 ps 测量实际 CPU 利用率,如下所示:
如果我知道我的进程运行的时间长度(采样周期),它们的实际“%cpu”值可以计算如下:
采样期间累计的“CPU TIME”---------------------------------------- ------ x 100 采样周期长度
我发现 Ubuntu Linux 16.10 系统监视器的 Firefox 进程 CPU 利用率百分比数据对系统监视器首选项非常敏感: 1. 更新间隔(以秒为单位),n 。换句话说,过去 n 秒的聚合使用情况 2. 除 CPU按 CPU 数量使用情况,我在 Lenovo Thinkstation 台式机上使用四核 CPU。
In summary, the longer the time period over which aggregate usage
测量得越准确,CPU 利用率测量就越准确。