顶部命令,系统栏

顶部命令,系统栏

我不擅长使用 Linux,但我很享受这种有限的接触。我们使用虚拟化的 Red Hat 服务器进行软件开发,我必须做的一件事就是检查谁占用了 CPU,看看我们如何才能避免这种情况。我可以很容易地破译用户和进程,但如果系统列使用了(比如说)50.8% 的 CPU,我如何才能找出它在做什么,并尽量减少它?我知道这都是内核的东西,但它似乎至少运行在 20% 左右,通常更高。这是一个示例输出:

245 processes: 232 sleeping, 8 running, 4 zombie, 1 stopped
CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle
           total   47.9%    0.0%   50.8%   0.3%     0.7%    0.0%    0.0%
           cpu00   68.9%    0.0%   29.2%   0.3%     1.3%    0.0%    0.0%
           cpu01   26.8%    0.0%   72.5%   0.3%     0.1%    0.0%    0.0%
Mem:  3816924k av, 3795652k used,   21272k free,       0k shrd,  266548k buff
                   2836408k actv,  541432k in_d,   58992k in_c
Swap: 2097136k av,       0k used, 2097136k free                 3080380k

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
23447 romanmur  25   0  6896 6896   356 R    33.4  0.1   0:09   1 bzip2
23961 tomjose   25   0  1076 1076   960 S     5.4  0.0   0:00   1 make_headers.
23887 paulhewl  25   0  3996 3996   348 R     4.4  0.1   0:00   0 bzip2
 3902 romanmur  15   0  4112 4108  1628 S     2.1  0.1   0:23   0 smbd
23446 romanmur  15   0   708  708   616 S     0.5  0.0   0:00   1 tar
24541 damianwy  24   0  1776 1776   960 S     0.4  0.0   0:00   0 sh
24493 root      24  -1  1372 1372  1100 R <   0.3  0.0   0:00   1 X
 1771 root      15   0  1108 1108   496 S     0.2  0.0  14:26   1 cmaperfd
23262 root      15   0  1308 1308   884 R     0.2  0.0   0:03   1 top
15209 paulhewl  15   0   488  488   428 S     0.2  0.0   0:00   1 tee
 2719 richardp  15   0  6108 6104  2108 S     0.1  0.1   1:02   0 smbd
23857 paulhewl  22   0  1900 1900   652 S     0.1  0.0   0:00   1 make
23886 paulhewl  19   0   712  712   624 S     0.1  0.0   0:00   0 tar
24431 root      23   0  1052 1052   936 S     0.1  0.0   0:00   1 startx
24521 paulhewl  24   0  1056 1056   896 S     0.1  0.0   0:00   1 sh
24523 paulhewl  25   0   416  416   344 R     0.1  0.0   0:00   1 mips-linux-gc

谢谢!

答案1

我对于这种困境深表同情。

top很棒,但理解起来也有点棘手,主要是因为系统太复杂了。例如,如果你有双核 CPU,那么 CPU 在 top 上以 100% 的速度运行一个命令通常不是问题 - 这只是意味着一个命令正在完全使用一个核心,但另一个核心应该能够接管并无延迟地执行其他命令。

系统负载的良好起点(一目了然)是手册页(同样适用于)右侧最上面的三个数字(w如果您的顶部没有显示,请输入)。它们基本上是系统开始处理队列中的下一个命令之前需要多长时间……1.01 秒、3.26 秒等。首先,我会更关注这些值,而不是其他详细的信息来告诉您系统是否繁忙。wsystem load averages for the past 1, 5, and 15 minutestop

上面的输出表明,这bzip2是拍摄快照时 CPU 占用最高的用户。

我建议进一步阅读有关系统 IO、RAM 和 CPU 监控工具的解释。

以下是一些希望能够简化搜寻的起点:顶部列SysStat 和其他工具更有效地使用 top

相关内容