Назад | Перейти на главную страницу

выяснение причин высокой средней нагрузки sendmail

Я исследую сервер, который я не настраивал, и нет специалиста, который мог бы ответить на вопросы.

Проблема в том, что средняя нагрузка высока, что не позволяет серверу отправлять электронные письма! Это происходит периодически, иногда несколько раз в минуту, а средняя нагрузка может достигать 80!

Я заметил, что иногда может пройти час, прежде чем электронное письмо действительно может быть отправлено, и я хотел бы лучше понять, что происходит на сервере.

Периодически (иногда несколько раз в минуту, а средняя нагрузка может достигать 80) я получаю в журнале почты такие сообщения:

Feb  9 01:37:54 mydomain sm-mta[999]: rejecting connections on daemon MTA-v4: load average: 48

Я не знаю причины этого, но похоже, что электронные письма на самом деле не отправляются, поэтому мне интересно, что может происходить.

Иногда кажется, что электронные письма действительно отправлены. Единственное, что я знаю, это отправка электронной почты, это веб-сервер, поэтому электронные письма, отправленные с www-data, имеют смысл. Я не знаю, что могло их отправить.

Feb  9 01:54:22 mydomain sendmail[6704]: r1...: from=www-data, size=1380, class=0, nrcpts=1, msgid=<...@www.mydomain2.se>, relay=www-data@localhost
Feb  9 01:54:23 mydomain sm-mta[6706]: r1... from=<www-data@mail.mydomain.se>, size=1482, class=0, nrcpts=1, msgid=<...@www.mydomain2.se>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Feb  9 02:01:02 mydomain sendmail[6751]: r1...: from=root, size=323, class=0, nrcpts=1, msgid=<..r191115u006751@mail.mydomain.se>, relay=root@localhost
Feb  9 02:01:02 mydomain sm-mta[6752]: r1...: from=<root@mail.mydomain.se>, size=597, class=0, nrcpts=1, msgid=<..r191115u006751@mail.mydomain.se>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]

netstat -ntop показывает только процессы apache2.

Какими способами можно решить эту проблему?

Вы должны выпустить mailq и посмотрите, сколько писем в очереди. Я предполагаю, что их может быть много, особенно если это веб-сервер, на котором запущено приложение PHP, которое отправляет электронные письма (и подвергается злоупотреблениям со стороны спамеров).

Сначала попробуй и изменить конфигурацию управления загрузкой sendmail по умолчанию:

define(confREFUSE_LA, 8)dnl
define(confQUEUE_LA, 12)dnl

Поместите это в свой sendmail.mc и генерировать sendmail.cf и перезапустите sendmail в соответствии с указаниями вашей операционной системы.

Проверяя вывод mailq найдите файлы очереди и проверьте содержимое писем в очереди. Это даст вам представление о том, кто и почему отправляет эти электронные письма. То есть, если причиной ваших проблем является слишком много электронной почты.

Другими причинами могут быть оскорбительный (плохо настроенный) почтовый клиент (будь то POP3 или IMAP) или что-то еще, вызывающее высокую нагрузку.

В зависимости от вашего прогресса вам может потребоваться наблюдение перед машиной, чтобы видеть (и анализировать), что входит, а что выходит.

Опять же, в зависимости от ваших выводов, вам может потребоваться задать этот вопрос еще раз на security.stackexchange.com.

РЕДАКТИРОВАТЬ: Вы должны помнить, что sendmail начинает отклонять запросы на обработку электронной почты, когда нагрузка на машину превышает определенный порог. За достижение этого порога sendmail ответственности не несет. Другие процессы, такие как веб-сервер, cronjob, запрос к плохо настроенному MySQL, который заставляет машину менять местами, могут взять на себя вину.