top命令占用高cpu使用率

top命令占用高cpu使用率

我的系统是 SUSE 10,我观察到top使用它时 CPU 使用率为 57%。

CPU 占比 57%

我没有太多的流程:

ps -eLf | wc -l
106

以下是top的统计数据:

cat /proc/2913/stat
2913 (top) R 2879 2913 2879 34819 2913 8396800 411 0 0 0 60648 199580 0 0 17 0 1 516504552 4811013274 2383872 285 4294967295 134512640 134596384 3215474448 3215470376 3085449998 0 0 0 138047495 0 0 0 17 3 0 0 0


cat /proc/2913/status 
Name:   top
State:  R (running)
SleepAVG:       79%
Tgid:   2913
Pid:    2913
PPid:   2879
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 256
Groups: 0 
VmPeak:     2360 kB
VmSize:     2328 kB
VmLck:         0 kB
VmHWM:      1144 kB
VmRSS:      1140 kB
VmData:      260 kB
VmStk:        84 kB
VmExe:        84 kB
VmLib:      1788 kB
VmPTE:        16 kB
Threads:        1
SigQ:   2/16383
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 00000000083a7007
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff
Cpus_allowed:   00000000,00000000,00000000,0000000f
Mems_allowed:   1

## cat /proc/2913/statm
582 285 213 21 0 86 0

top我接下来该做什么才能找出该命令占用如此多 CPU 的原因?

答案1

top 只使用了你?上网本? 你可以从这一行看到:

PID  USER    PR  NI VIRT   RES  SHR S %CPU %MEM   TIME+   COMMAND 
2913 root    16  0  2328  1140  852 R   57  0.1  38:15.95 top

它只使用了据说的 57%,而有 94 个任务处于休眠状态:

Tasks:  95 total,  1 running,  94 sleeping,  O stopped,  O zombie

然后你可以把注意力集中到中间部分:

Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpul : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.0%us, 0.0%sy, 0.0%ni, 99.7%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 :13.3%us,43.6%sy, 0.0%ni, 43.0%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st

CPU0 100%处于空闲状态,CPU1和CPU2也是如此,CPU3仅占用43%的时间用于系统进程,13%的时间用于用户进程。

正如 man 1 首页所说:

       us, user    : time running un-niced user processes
       sy, system  : time running kernel processes
       ni, nice    : time running niced user processes
       id, idle    : time spent in the kernel idle handler
       wa, IO-wait : time waiting for I/O completion
       hi : time spent servicing hardware interrupts
       si : time spent servicing software interrupts
       st : time stolen from this vm by the hypervisor

顶部仅使用

57/4% 或 14%

您的处理能力,并且

.1%

你的记忆。

答案2

您的服务器已运行 556 天。虽然这不应该是个问题,但长时间的运行可能会导致您注意到的一些异常行为。没有任何可识别的原因。根据我的经验,在这种情况下,重新重新启动可以立即解决问题。我知道这是一个愚蠢的解决方案,但为什么要浪费更多时间来解决这个问题呢?

如果重新启动不能解决问题,那么就值得更深入地研究它。

相关内容