平均负载高,CPU 低

平均负载高,CPU 低

我的服务器变慢了,但我不知道为什么。

从顶部打印:

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。最后,在标题下cpuwa列显示您的 CPU 花费了 90% 以上的时间来等待 IO 完成。

您必须检查为什么会出现 IO 问题。这可能是由于服务器容量不足、进程运行失控和其他一些原因,但肯定是 IO 问题。

答案2

如果 1.0% wa 过高,请检查顶部的 wa。由于您已经访问了交换文件,因此进程可能会等待 I/O

检查 cat /proc/sys/fs/file-nr第一个数字是否接近第三个数字(打开文件数与打开文件总数)。

你使用 VPS 吗?

答案3

vmstat 输出中显示的 iowait(在最后一列中列为“wa”)非常高。并且正在进行大量分页(数据页面在物理内存和基于磁盘的交换之间移动)。

这台机器将受益于更多的物理内存。

相关内容