当系统空闲时,不同的来源报告不同的 CPU 使用率级别,我如何确定哪个是准确的?

当系统空闲时,不同的来源报告不同的 CPU 使用率级别,我如何确定哪个是准确的?

抱歉,如果这是转发的话,我的谷歌搜索没有找到任何可以解决我的问题的方法,我找到的最接近的解决方案是这个

当我发布同一问题的统计数据时,有人告诉我不要在主题中提出同一问题。所以现在我要为同一问题开一个新主题。

我有一台旧电脑,其规格如下:

  • 4GB DDR2 RAM(4x1GB @ 1333MHz)
  • AMD Athlon 64 X2 双核处理器 4200+ ×2
  • 技嘉 GA-MA69VM-S2 主板
  • 通过 ubuntu 安装程序将 2x 256GB SSD 安装在 softRAID1 中
  • 1TB HDD 提供额外空间

跑步:

  • 版本 12.04 (精确) 64 位 (服务器)
  • 内核 Linux 3.5.0-54-generic
  • GNOME 3.4.2

根据top我的核心运行情况:

top - 14:47:56 up 8 days, 55 min,  4 users,  load average: 2.69, 3.13, 2.97
Tasks: 210 total,   4 running, 205 sleeping,   0 stopped,   1 zombie
Cpu(s): 13.8%us, 10.5%sy, 72.0%ni,  3.2%id,  0.3%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:   3919760k total,  3461844k used,   457916k free,   164664k buffers
Swap: 19528700k total,  1062256k used, 18466444k free,   963632k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
28746 www-data  39  19  144m  40m 3412 R   21  1.0   0:00.63 gbrowse            
 7269 root      20   0  528m  24m 9408 R   12  0.6   1292:27 gnome-system-mo    
 1311 root      20   0  233m  63m 4164 S    8  1.6 778:52.73 Xorg               
28748 www-data  39  19 38080 8216 2076 R    3  0.2   0:00.10 gbrowse            
 1208 www-data  39  19  626m 120m 3884 S    1  3.1  50:32.07 /usr/sbin/apach    
 2944 root      20   0 1370m 430m  31m S    1 11.2  54:27.70 firefox            
17696 www-data  39  19  472m 103m 4040 S    1  2.7  13:17.29 /usr/sbin/apach    
    3 root      20   0     0    0    0 S    0  0.0   4:16.15 ksoftirqd/0        
  243 root      20   0     0    0    0 S    0  0.0  17:38.27 md1_raid1          
 1344 mysql     20   0  481m 1996  512 S    0  0.1   8:40.40 mysqld             
22219 www-data  39  19  430m  80m 6456 S    0  2.1   3:15.41 /usr/sbin/apach    
28726 root      20   0 17456 1440 1008 R    0  0.0   0:00.03 top                
29976 www-data  39  19  493m 112m 3988 S    0  2.9  18:13.70 /usr/sbin/apach    
32406 root      20   0  761m  11m 5796 S    0  0.3   2:06.10 filezilla          
    1 root      20   0 24608 1924  896 S    0  0.0   0:01.22 init      

根据grep MHz /proc/cpuinfo他们正在运行的内容:

cpu MHz: 2200.000
cpu MHz: 2200.000

根据ps -eo pcpu,pid,args | sort -k 1 -r | head -15(建议这里)他们正在跑步:|

%CPU   PID COMMAND
 6.7  1311 /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none
 4.5  2944 /usr/lib/firefox/firefox
 1.7 29976 /usr/sbin/apache2 -k start
 1.7 17696 /usr/sbin/apache2 -k start
 1.7  1731 /usr/sbin/apache2 -k start
 1.7  1208 /usr/sbin/apache2 -k start
 1.7 10551 /usr/sbin/apache2 -k start
 1.6 22219 /usr/sbin/apache2 -k start
 1.6 22216 /usr/sbin/apache2 -k start
 1.6 20784 /usr/sbin/apache2 -k start
 1.6 20778 /usr/sbin/apache2 -k start
 1.6 20774 /usr/sbin/apache2 -k start
14.5  7269 gnome-system-monitor
 0.2  8011 pidgin

根据系统监视器的“进程”选项卡,它们正在运行:

在此处输入图片描述

根据他们正在运行的同一系统监视器的“资源”选项卡:

在此处输入图片描述

我从来没有安装过 compiz,而问这个问题的大多数人都认为这是罪魁祸首(例如这里),而 compiz 没有出现在我的进程列表中,所以我认为问题不在这里(除非出于某种原因它被隐藏了)。有谁知道为什么会出现差异,我如何才能知道我让旧机器做了多少工作?

答案1

这些工具提供的快照在监控时很有用,但实际上您需要的是可以跟踪更长时间的工具。它们只记录时间片段,并会报告应用程序(例如应用程序本身)中的峰值,而这些峰值只是干扰因素。

我注意到您正在运行一个 Web 服务器,该机器是否为许多用户提供服务?是否可以在不运行任何图形程序的情况下启动机器,然后仅通过 tty(即 cntrl-alt-F10)监视“top”?这至少可以将 UI 部分排除在外。

或者,您可以尝试关闭 apache 并查看机器负载是否更稳定。

我会坚持使用 1 个流程监控工具(当然每次只使用一个),这样你就不会看到它们互相报告。

答案2

我认为至少top系统监视器和负载平均值是一致的。看看平均负载:它们始终高于 2,并且假设您有一个双核系统,这意味着您的两个 CPU 核心分别在过去 1、5 和 15 分钟内都得到了充分利用。系统监视器 CPU 使用率图表也显示了这一点。至于其余部分,给定一组进程对 CPU 的实际利用率非常非常不稳定 - 它们可能在不同时刻有所不同,除非有某些东西引导调度程序,例如具有高 nice 值的饥饿进程。

相关内容