当它们加起来不等于100%时,如何判断哪个进程在占用我的CPU?


9

Ubuntu的系统监视器小程序连续显示100%的CPU使用率。如果单击它,资源选项卡也会连续100%显示它。但是,如果我要进行流程检查,找出哪个流程是罪魁祸首,那没有什么比10%高。如果我跑得最好,那没有超过10%的了。各个过程的总和不等于100%。我尝试杀死许多进程,但总体使用率仍为100%。如何找出占用CPU的资源?

替代文字

在我每天使用的计算机上,这是一种不寻常的情况,除非有必要做的事情(例如加载32个Firefox选项卡),否则它永远都不会接近100%CPU,然后计算机又恢复到正常的空闲水平。这不是新安装的东西。没有理由使处理器达到极限。我不确定它什么时候开始,或者我是否更改了导致它发生的内容。

通常,我将使用top或System Monitor来查找失去控制的进程,但是这次我无法使用这些工具找到任何东西。重新启动后,它仍然存在。

而且处理器显然很热,因此这不是一个错误的读数。

更新:我尝试一次杀死每个进程,直到问题消失,并且杀死vino-server最终将其修复,即使该进程从未超过5%。我几天前启用了远程桌面(现在显然已经禁用了它)。

但是问题仍然存在:单个进程如何设法使用100%CPU,而top仅显示该进程为5%?将来如何识别此类罪魁祸首?

看来我不是唯一遇到此问题的人:

轻浮与业力仍然是一个问题。有趣的是,System Monitor和htop都没有显示单个进程的总和接近100%cpu。


2
您的系统还慢吗?可能是错误的阅读。
鲍比(Bobby)

Answers:


9

当您说“没有高于10%”时,您是说“没有一件事物高于10%”吗?只需要11件事就能达到100%的总准确率约为9%。

另外,一些测量的已用CPU时间可能是I / O等待时间-某个进程可能正在做某事但不是因为它在等待I / O设备响应(即它已发出磁盘请求)的时间。并且磁盘尚未找到正确的数据位并将其返回)。最重要的是,这可以在CPU行上视为%wa度量。I / O等待状态有点奇怪-CPU实际上并不忙于做任何事情(因此,如果另一个进程想要执行一些计算,它将能够执行),但是随着系统负载的增加,它确实会计入系统负载数字不仅仅是CPU活动。

将输出添加top -n 1到您的问题会很有帮助。

另外,如果您的内核最近才具有IO记帐功能(如果您使用的是Ubuntu的最新版本)并且已启用,则可以通过运行iotop -n 1 -ob(iotop)看到哪些进程正在主动执行I / O操作。可能默认情况下未安装,如果您没有安装,请尝试使用安装apt-get install iotop或在GUI软件包管理器中找到它。


1
+1以要求添加top -n 1到问题
TarnayKálmán09年

2

我有一个类似的问题。处理器忙得不可开交,System Monitor中的所有进程均未显示任何内容。我通过在终端窗口中使用“ top”命令找到了一个答案。它表明apt毫无理由地在占用我的CPU。那么,为什么系统管理器没有显示呢?事实证明,在“查看所有进程”下有一个选项;我的被​​检查为“我的流程”,所以我从未见过罪魁祸首。希望这可以帮助。


0

我有同样的问题,但是发现Xorg使用了50%的CPU,而这表明可以使用command修复[此错误] sudo rmmod ums_realtek。这次Xorg在系统监视器中仅使用了大约5-10%的CPU,但是在资源选项卡中它仍然显示100%。

当我监视系统监视器时,我看到使用100%CPU的基本程序闪烁!我没有时间去看它是什么,但是我确信这与它有关。


-1

第一个问题是您的系统是运行缓慢还是无响应。毕竟,这是您的CPU,您为此花了钱,并且有权根据自己的目的完全运行它。第二个问题是您是否只是在尝试对系统做太多事情,并且应该尽可能考虑升级。我的第一个Linux机器中的速度很慢,为486,将其装满确实很容易。例如,如果您在OLPC XO上运行,则您的资源实际上是有限的。

严重的是,您不太可能同时运行大量过多的资源消耗。如果没有任何进程占用超过10%的资源,那么您的系统就会被鸭子吞噬,甚至无法减少工作量而无法减少负载。

话虽如此,请检查系统服务,然后关闭所有不需要的服务。考虑卸载确实确定不需要的(sudo apt-get remove foo)。特别是在系统过载的情况下,减少负载只会有所帮助。尝试退出不使用的程序。

如果有一个进程正在使用所有可用的CPU,请尝试通过运行top并注意主要进程正在使用的资源百分比来找到它。当您杀死一些人时,看看其中一个人的上升速度是否比其他人更快。当然,杀死这样一个进程并不会给您带来太多好处,因为它不会超过负载的10%。


如果我使用的是CPU,我会知道的。它在正常运行期间不会连续100%运行,并且当我关闭所有我认为可能正在使用的东西时,它当然不应该如此。
endlith

-1
  1. apt-get install cpufrequtils
  2. 打开 /etc/rc.conf
  3. 将以下内容添加到模块:MODULES=(#your-modules-don't-touch#acpi-cpufreq cpufreq_ondemand cpufreq_performance)
  4. 重启

重启后,您应该运行cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors以查看加载了哪些模块。

在工作期间,您可以根据自己的需要更改总督。例如:

  • cpufreq-set -r -g ondemand

您可以使用以下调控器之一:

  • 性能:它运行在最高时钟的CPU(模块:cpufreq_performance
  • 按需:动态的CPU(一个或多个)可用的时钟速度之间的基于SYS负载上的开关(模块:cpufreq_ondemand
  • 保守:类似于ondemand,但CPU(一个或多个)的时钟速度通过所有可用的频率逐渐切换(基于SYS负载)(模块:cpufreq_conservative
  • 节电:CPU(一个或多个)以最小速度运行(模块:cpufreq_powersave
  • userspace:允许用户手动设置CPU时钟速度。(模块:cpufreq_userspace

如果您使用的是GNOME2,则有一个applet,这非常了不起。

  1. 在面板上单击鼠标右键
  2. 添加小程序
  3. 开始输入:CPU,您应该可以看到它:)
  4. 请点击 Add

通过使用此小程序,您可以在可用的调控器之间进行切换(/etc/rc.conf之前已将它们添加到其中)。

例如,我一直在使用ondemand,因为我不需要全部性能即可在ArchLinux:P上运行eclipse和Android模拟器

Summa Summarum-Google for cpufrequtils并学习如何使用它:) pckg节省了我的时间和金钱; D

干杯!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.