当我运行命令时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 论坛锁定了所有用户。
有些事情显然是错误的,我该如何识别和解决问题?
非常感谢。
答案1
所以你确实占用了大量的 CPU。要么换一个更好的服务器,要么让你的论坛变得不那么受欢迎。你似乎还发送了相当多的邮件……你的论坛被黑客入侵了吗?有人把它当作垃圾邮件来源了吗?检查你的邮件日志……
答案2
[更新:答案是在添加完整顶部输出之前发布的。虽然答案仍然正确,但不再适用于这种情况]
负载不是 CPU 使用率,负载是运行队列中的进程数量。通常,高负载和低 CPU 使用率表示存在 I/O 问题,例如 I/O 缓慢或挂起。我曾经在邮件服务器上遇到过超过 9000 的负载,当时存储出了问题。几乎没有任何 CPU 使用率,而且 ssh 响应完美,它只是不再喜欢作为邮件服务器了。
答案3
您的 CPU 使用率很高(空闲时间 3.1%,正常时间 0%),而且磁盘负载也可能很高(尝试查看 vmstat 输出,检查块入/块出队列中是否存在超出范围的数字,或者等待时间是否存在一些高值,如果我没记错的话,这意味着等待某些 I/O 完成所花费的时间)。
在未加载的系统上,等待时间将接近 0%,并且读/写块的值会很小。
我在一个网站上也遇到过类似的问题,mysql 占用了大量磁盘和内存,而 php/apache 则主要受到 CPU 限制... 解决方案是将其一分为二:一台机器上安装 www 前端,另一台机器上安装 mysql 后端。然后事情就顺利多了...
无论如何,请尝试更好地了解导致您负载的原因 - 也许您的 sendmail 是问题的一部分,我看到很多这样的进程处于“D”状态(等待设备 - 即磁盘绑定)。首先确保它为您工作,而不是为其他人工作(中继垃圾邮件发送者的邮件或类似的东西...)
祝您狩猎愉快!:)
答案4
您应该只安装 postfix。您的邮件服务器可能由于配置而充当开放中继。Postfix 默认设置可以缓解这些问题,并且可能比重新配置 sendmail 更快 -
发出sendmail -bp
以获取 sendmail 队列中的消息列表。如果 /var/spool/mqueue 中有大量不会消失的消息,您可以切换到该目录并 rm *。但是,如果有人当时正在发送消息,而 sendmail 在您之前没有删除该消息,该消息就会丢失。由于没有用于刷新队列的 sendmail 开关,您可能必须这样做。您还可以在其他线程中找到其他方法。