2014-10-02 230 views
2

我在Google Compute Engine上运行一个小型Cassandra集群。从我们的CPU图表(据collectd报道),我注意到在NICE中花费了一笔不小的处理器时间。我怎样才能找出哪个过程消耗这个?我已经尝试过从头开始并且盯着它一段时间,但是NICE的CPU使用率有点spikey(大多数时候,NICE是0%,有时会达到30-40%),所以“坐等”不是很有效。了解什么是“nice”CPU

+0

作为第一个快速检查,您可以检查是否有使用缩进过程的cron作业。 – 2014-10-02 13:02:12

回答

3

“好”通常指的是过程的优先级。 (正值越低优先级越高,负值越高优先级越高。)您可以运行ps -eo nice,pid,args | grep '^\s*[1-9]'以获得正好(低优先级)命令的列表。

在CPU图表上NICE时间是运行流程的时间,具有良好的正值(即低优先级)。这意味着它正在消耗CPU,但会放弃大多数其他进程的CPU时间。上述ps命令中列出的其中一个进程的任何USER CPU时间将显示为NICE。

+0

我不太了解你的grep。由于负值的优先级较低,因此我不应该对NICE值<0的进程进行选择吗?看起来你的命令是对正NICE(即高优先级)命令的grep。以下是我的结果:<< 5 30 [ksmd],19 31 [khugepaged] >>。我认为这可能是我想运行得到负面的NICE价值流程,对吧? 'ps -eo nice,pid,args | grep'^ \ s * [1-9]'' 编辑:ugh,很难在注释中设置格式 – 2014-10-08 14:26:15

+0

但是请注意,如果我将pcpu添加到输出格式,所有匹配的进程(每个都带有NICE = -20)它们每个都显示pcpu = 0.0,所以我不认为其中任何一个都可以解释collectd正在报告的NICE cpu。 – 2014-10-08 14:30:13

+0

伊恩,我错过了写关于优先权的括号,当我把它放在那里时,这是非常愚蠢的,因为它通常会让人困惑。 +20 nice是最低优先级。 – David 2014-10-08 18:05:56