我的服务器变慢了,但我不知道为什么。
从顶部打印:
top - 14:32:50 up 639 days, 6:30, 1 user, load average: 67.93, 70.63, 79.85
Tasks: 245 total, 1 running, 244 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.9% us, 0.5% sy, 0.0% ni, 94.5% id, 1.0% wa, 0.0% hi, 0.0% si
Mem: 1034784k total, 1021256k used, 13528k free, 4360k buffers
Swap: 1023960k total, 635752k used, 388208k free, 36632k cached
vmstat 10 6
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 110 795604 12328 3980 46676 0 0 0 0 0 0 4 1 95 1
0 97 788848 12052 3960 46256 2985 33 3323 33 429 0 2 1 0 97
0 119 782660 13992 4096 45740 2780 14 2995 360 435 0 2 1 1 96
0 121 775924 15600 3724 42796 3084 0 3443 136 440 0 2 1 0 98
0 113 769392 13576 3476 41968 3002 0 3458 7 426 0 2 1 0 97
0 113 762284 12440 3332 34884 3151 0 3553 61 427 0 2 1 0 97
doitprod2:/var/log# grep -c 处理器 /proc/cpuinfo
2
iostat 2
tps Blk_czyt/s Blk_zapis/s Blk_czyt Blk_zapis
sda 166,00 7128,00 52,00 14256 104
好的,终止并启动一些进程后现在一切正常。无论如何,感谢您的帮助。
答案1
您可能有一些进程处于UNINTERRUPTIBLE_SLEEP
开启状态,通常它们处于这种状态是因为它们正在等待硬件的某些操作,例如从磁盘读取数据。这些进程实际上处于休眠状态(您有 244 个休眠进程),但它们会进入平均负载计算。使用 检查您的服务器 IO,vmstat
看看是否有许多D
状态处于开启top
或关闭状态,ps
以进行确认。
编辑:查看您的vmstat
输出进一步证实了 IO 问题。b
下面的列procs
显示平均有 100 个进程处于不间断睡眠状态。您的bi
列(从块设备读取的块)非常高,列(从交换/磁盘读取的内存)也是如此si
。最后,在标题下cpu
,wa
列显示您的 CPU 花费了 90% 以上的时间来等待 IO 完成。
您必须检查为什么会出现 IO 问题。这可能是由于服务器容量不足、进程运行失控和其他一些原因,但肯定是 IO 问题。
答案2
如果 1.0% wa 过高,请检查顶部的 wa。由于您已经访问了交换文件,因此进程可能会等待 I/O
检查 cat /proc/sys/fs/file-nr
第一个数字是否接近第三个数字(打开文件数与打开文件总数)。
你使用 VPS 吗?
答案3
vmstat 输出中显示的 iowait(在最后一列中列为“wa”)非常高。并且正在进行大量分页(数据页面在物理内存和基于磁盘的交换之间移动)。
这台机器将受益于更多的物理内存。