服务器负载非常高,尽pipeCPU使用率很低

当我运行top命令,我得到这个

 top - 23:20:50 up 1:25, 1 user, load average: 11.02, 11.20, 10.41 Tasks: 262 total, 3 running, 258 sleeping, 1 stopped, 0 zombie Cpu(s): 75.6%us, 6.1%sy, 0.0%ni, 3.1%id, 14.3%wa, 0.0%hi, 0.8%si, 0.0%st Mem: 2028800k total, 1669384k used, 359416k free, 153300k buffers Swap: 523260k total, 2636k used, 520624k free, 749404k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 10221 www-data 20 0 416m 24m 5376 S 46 1.2 0:27.88 apache2 11290 www-data 20 0 420m 28m 3964 S 28 1.4 0:09.30 apache2 11844 www-data 20 0 424m 31m 5336 S 21 1.6 0:04.00 apache2 11670 www-data 20 0 410m 18m 3688 S 18 1.0 0:04.10 apache2 11147 www-data 20 0 417m 25m 5360 R 15 1.3 0:09.71 apache2 10615 www-data 20 0 418m 26m 5460 S 6 1.3 0:18.89 apache2 3014 mysql 20 0 1316m 128m 8188 S 6 6.5 4:24.84 mysqld 10852 www-data 20 0 419m 26m 5376 S 6 1.4 0:16.05 apache2 11278 www-data 20 0 420m 28m 3984 S 3 1.5 0:10.39 apache2 1589 root 20 0 0 0 0 D 1 0.0 1:16.40 jbd2/sda1-8 12024 www-data 20 0 81044 4732 3180 S 1 0.2 0:00.04 sendmail 5281 root 20 0 97.9m 4696 1800 D 1 0.2 0:56.55 sendmail-mta 11927 root 20 0 17464 1452 932 R 1 0.1 0:00.32 top 12009 root 20 0 99.6m 5232 2720 D 1 0.3 0:00.06 sendmail-mta 2929 syslog 20 0 243m 3104 1140 S 1 0.2 0:25.32 rsyslogd 3029 bind 20 0 238m 21m 3032 S 1 1.1 0:27.77 named 6627 root 20 0 101m 6872 2852 D 1 0.3 0:07.54 sendmail-mta 10525 root 20 0 100m 5308 1536 D 1 0.3 0:02.33 sendmail-mta 14241 root 20 0 100m 6136 2868 S 1 0.3 0:31.78 sendmail-mta 18543 root 20 0 100m 6300 2868 R 1 0.3 0:27.42 sendmail-mta 22589 root 20 0 100m 6472 2884 S 1 0.3 0:22.43 sendmail-mta 31196 root 20 0 100m 6604 2852 D 1 0.3 0:16.98 sendmail-mta 1 root 20 0 24332 2012 1356 S 0 0.1 0:05.23 init 1391 root 20 0 0 0 0 S 0 0.0 0:02.97 kworker/0:0 2549 root 20 0 101m 6728 2852 D 0 0.3 0:12.15 sendmail-mta 3395 smmsp 20 0 83048 5076 1460 S 0 0.3 0:24.24 sendmail-msp 3661 ntp 20 0 37772 2252 1620 S 0 0.1 0:00.39 ntpd 5382 smmsp 20 0 83048 6924 3324 S 0 0.3 0:20.41 sendmail-msp 5483 root 20 0 97.9m 4696 1800 D 0 0.2 0:56.38 sendmail-mta 7502 root 20 0 0 0 0 S 0 0.0 0:00.80 kworker/1:0 12025 root 20 0 99700 3956 1660 D 0 0.2 0:00.01 sendmail-mta 2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0 0.0 0:00.10 ksoftirqd/0 6 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0 7 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/1 9 root 20 0 0 0 0 S 0 0.0 0:00.58 ksoftirqd/1 11 root 0 -20 0 0 0 S 0 0.0 0:00.00 cpuset 

然而,当我运行uptime我得到

 22:53:23 up 57 min, 1 user, load average: 8.38, 9.22, 8.88 

结果,我的vBulletin论坛正在locking所有用户。

显而易见的问题似乎是错误的,我怎样才能确定和解决这个问题?

非常感谢。

所以你实际上使用了很多的CPU。 要么得到一个更好的服务器,要么让你的论坛变得不那么受欢迎。 您似乎也发送了相当多的邮件…是您的论坛被黑客攻击,并有人将其用作垃圾邮件源? 检查你的邮件日志

[更新:答案发布之前,完整的顶部输出被添加。 虽然答案仍然正确,但不再适用于这种情况]

加载不是CPU使用率,加载是运行队列中的进程数量。 通常CPU使用率较低的高负载表示I / O问题,如缓慢或挂起的I / O。 我曾经在邮件服务器上有超过9000的负载,在那里存储散步。 几乎没有任何CPU使用率,和SSH完全响应,它只是不喜欢成为一个邮件服务器了。

你有一个很高的CPU(空闲时间3.1%,漂亮的时间0%),可能是一个高磁盘负载(尝试查看vmstat输出,检查一些超出规模的数字,在块入/封锁队列或对等待时间有一些很高的价值,这意味着如果我没有错等待一些I / O完成的时间)。

在一个没有加载的系统上,你将有接近0%的等待时间和读/写块的小值。

我遇到类似的麻烦,在一个网站,其中MySQL使用了大量的磁盘和内存,而PHP / Apache主要是CPU绑定…解决scheme是分成两部分:在机器上的www前端,在另一个MySQL后端。 事情变得顺利,然后..

无论如何,试着更好地理解是什么导致你的负载 – 也许你sendmail是问题的一部分,我看到很多这样的进程在“D”状态(等待设备 – 即磁盘绑定)。 首先确保它是为你而不是为其他人工作(转发垃圾邮件的邮件等)

有一个很好的狩猎! 🙂

你应该只安装postfix。 由于configuration,您的邮件服务器可能充当开放中继。 Postfix默认可以缓解这些问题,并且可能比重新configurationsendmail更快 –

发出sendmail -bp以获取sendmail队列中的消息列表。 如果/ var / spool / mqueue中有很多消息没有消失,则可以更改为该目录和rm *。 如果有人在那个时候发送消息,但是在这之前没有被sendmail删除,它将会丢失。 由于没有sendmail开关来冲洗队列,您可能必须这样做。 还有其他的方法可以在其他线程中find。