我使用图形 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
答案3
文件系统命令(例如)cp
根本不应该占用太多 CPU 时间或内存,这就是所top
显示的。尝试iotop
使用该程序(您可能需要安装它)。
答案4
我现在找不到来源,对此我表示歉意,但我记得阅读它可能与虚拟驱动器的存储位置有关。如果通过 NFS 存储和访问它,则会产生大量开销和抖动。
Virtualbox 有调整 IO 缓存的选项,您可能需要查看这些选项。这会影响复制数据的简单程序,例如 cp。