Нагрузка на сервер очень высокая, несмотря на низкую загрузку процессора
Когда я бегу 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 блокируют всех пользователей.
Кажется, что-то очевидно не так, как я могу определить и решить проблему?
Большое спасибо.
4 ответа
Таким образом, вы на самом деле используете много процессора. Либо получите лучший сервер, либо сделайте свои форумы менее популярными. Вы также, кажется, отправляете довольно много писем... Ваш форум взломан и кто-то использует его в качестве источника спама? Проверьте свои почтовые журналы...
[Обновление: ответ был опубликован до того, как был добавлен полный верхний вывод. Хотя ответ все еще правильный, он больше не относится к ситуации]
Загрузка - это не загрузка ЦП, а загрузка - количество процессов в очереди выполнения. Обычно высокая нагрузка при низкой загрузке процессора указывает на проблему ввода-вывода, такую как медленный или зависающий ввод-вывод. Однажды у меня была нагрузка более 9000 на почтовом сервере, где хранилище ушло на прогулку. Едва ли используется процессор, и ssh прекрасно реагирует, ему больше не нравится быть почтовым сервером.
У вас высокая загрузка ЦП (время простоя 3,1%, хорошее время 0%) и, возможно, высокая нагрузка на диск (попробуйте посмотреть выходные данные vmstat, проверьте наличие какого-либо зашкаливающего числа в очередях block-in / block-out или какое-то высокое значение времени ожидания, что означает, что если я не ошибаюсь, время, потраченное на ожидание завершения ввода-вывода).
В незагруженной системе время ожидания будет близко к 0% и небольшие значения для блоков чтения / записи.
У меня были похожие проблемы с сайтом, где mysql использовал много диска и памяти, в то время как php/apache были в основном связаны с процессором... Решением было разделить его на две части: интерфейс www на компьютере, MySQL на другом конце. Дела пошли гладко тогда..
В любом случае, попытайтесь лучше понять, что является причиной вашей нагрузки - возможно, ваша проблема связана с sendmail, я вижу множество таких процессов в состоянии "D" (ожидание устройства, то есть привязка к диску). Прежде всего, убедитесь, что он работает для вас, а не для других (пересылка почты спамеров или что-то подобное...)
Приятной охоты!:)
Вы должны просто установить постфикс. Ваш почтовый сервер, вероятно, действует как открытый ретранслятор из-за конфигурации. По умолчанию Postfix смягчает эти проблемы и, вероятно, быстрее, чем переконфигурирование sendmail -
вопрос sendmail -bp
получить список сообщений в очереди sendmail. Если у вас есть много сообщений в /var/spool/mqueue, которые не исчезают, вы можете просто перейти в этот каталог и rm *. Если кто-то отправляет сообщение в этот момент, но оно не удаляется с помощью sendmail, прежде чем вы это сделаете, оно будет потеряно. Поскольку для очистки очереди нет переключателя sendmail, возможно, вам придется это сделать. Есть и другие методы, которые вы можете найти в других темах.