如何判断机器运行缓慢的原因?

如何判断机器运行缓慢的原因?

我使用图形 ssh 客户端 (securessh) 登录 Linux 服务器(作为虚拟机安装)。该服务器运行tomcat5.5服务器,其中关系已安装。

当我键入命令或删除/复制小文件(大约 5-6 MB)时,shell 需要很长时间才能响应(从 10 秒到几乎一分钟)。我尝试运行top以查看是否有任何进程使用大量内存/CPU 时间:

top - 13:34:41 up 86 days, 16:04,  1 user,  load average: 2.13, 0.99, 1.94
Tasks:  63 total,   1 running,  62 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.0%us,  1.5%sy,  0.0%ni, 96.2%id,  0.2%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   3896416k total,  3097824k used,   798592k free,   167180k buffers
Swap:   915664k total,       84k used,   915580k free,  2409236k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                      
20436 tomcat55  20   0  359m 217m  13m S   18  5.7   2713:04 jsvc                                 

只有 tomcat55 用户使用大量资源。根据上面的输出,该用户似乎只花费了 5.7% 的内存和 5.7% 的 cpu。我误读了top输出吗?如果 CPU 和内存利用率如此低下,为什么机器性能如此差?


编辑:我现在尝试运行并得到:

ATOP - repository         2011/09/20  16:08:48               10 seconds elapsed
PRC | sys   0.17s | user   0.03s | #proc     64 | #zombie    0 | #exit      4 |
CPU | sys      2% | user      1% | irq       0% | idle    198% | wait      0% |
cpu | sys      1% | user      1% | irq       0% | idle     98% | cpu001 w  0% |
cpu | sys      0% | user      0% | irq       0% | idle     99% | cpu000 w  0% |
CPL | avg1   0.05 | avg5    0.92 | avg15   1.29 | csw      976 | intr      61 |
MEM | tot    3.7G | free  656.7M | cache   2.4G | buff  170.9M | slab  241.3M |
SWP | tot  894.2M | free  894.1M |              | vmcom 781.9M | vmlim   2.7G |
DSK |         sda | busy      0% | read       0 | write      9 | avio    0 ms |
NET | transport   | tcpi      18 | tcpo      26 | udpi       0 | udpo       0 |
NET | network     | ipi       22 | ipo       26 | ipfrw      0 | deliv     22 |
NET | eth1     0% | pcki      34 | pcko      26 | si    2 Kbps | so   11 Kbps |

  PID  SYSCPU  USRCPU  VGROW  RGROW  RDDSK  WRDSK  ST EXC S  CPU CMD     1/1   
 4687   0.06s   0.02s     0K     0K      -      -  NE   0 E   1% <lsb_release>
 4689   0.04s   0.01s     0K     0K      -      -  NE   0 E   1% <apt-cache>   
 4684   0.04s   0.00s   132K   132K     0K     0K  --   - R   0% atop
 4673   0.02s   0.00s     0K     0K     0K     0K  --   - S   0% sshd         
 4152   0.01s   0.00s     0K     0K     0K     0K  --   - S   0% vmware-guestd
 2302   0.00s   0.00s     0K     0K     0K     4K  --   - S   0% kjournald
 4688   0.00s   0.00s     0K     0K      -      -  NE   0 E   0% <sh> 
 4686   0.00s   0.00s     0K     0K      -      -  NE   0 E   0% <sh>    

如果我理解正确的话,就没有“僵尸”,但它们仍然占用了大部分 cpu 时间(从 199% 跳到 200%)。这是预期的行为吗?

答案1

此外iostat你还应该考虑在顶上http://www.atoptool.nl/)来识别非 CPU 瓶颈。

答案2

问题可能是磁盘 I/O 速度慢。尝试运行:

$ iostat -d -x 5 3

有一个关于输出的解释这里

答案3

文件系统命令(例如)cp根本不应该占用太多 CPU 时间或内存,这就是所top显示的。尝试iotop使用该程序(您可能需要安装它)。

答案4

我现在找不到来源,对此我表示歉意,但我记得阅读它可能与虚拟驱动器的存储位置有关。如果通过 NFS 存储和访问它,则会产生大量开销和抖动。

Virtualbox 有调整 IO 缓存的选项,您可能需要查看这些选项。这会影响复制数据的简单程序,例如 cp。

相关内容