На VPS с 1 ядром ЦП и 2 ГБ ОЗУ я запускаю mysql + apache2 для веб-сайта с низким трафиком. Иногда машина тормозит или перестает доставлять сообщения через apache или mysql.
Вот почему я установил nagios, который отправляет мне предупреждения, такие как «Service Alert: localhost / Current Load is WARNING», после 5-10 дней работы. Затем я могу войти в систему через SSH и проверить оперативную память со «свободным» значением, которого все еще достаточно, доступно более 500 МБ и используется только 60 МБ подкачки.
Поскольку система снова замедлилась, я проверил системный журнал и нашел много таких записей:
30 июня 23:46:31 cl22 postfix / error [2190]: 46D8974323: to =, relay = none, delay = 294806, delays = 294803/3/0/0, dsn = 4.4.3, status = deferred (доставка временно приостановлено: Хост или имя домена не найдены. Ошибка службы имен для name = zombine.com type = MX: Хост не найден, попробуйте еще раз) 30 июня 23:46:31 cl22 postfix / error [2193]: 49CB374123: to =, relay = нет, delay = 154189, delays = 154185 / 3.1 / 0/0, dsn = 4.4.3, status = deferred (доставка временно приостановлена: имя хоста или домена не найдено. Ошибка службы имен для name = zombine.com type = MX : Хост не найден, попробуйте еще раз) 30 июня 23:46:31 cl22 postfix / error [2153]: 4E2C874250: to =, relay = none, delay = 433708, delays = 433704 / 3.1 / 0/0, dsn = 4.4. 3, статус = отложено (доставка временно приостановлена: хост или имя домена не найдены. Ошибка службы имен для name = zombine.com type = MX: хост не найден, попробуйте еще раз) 30 июня 23:46:31 cl22 postfix / error [2176 ]: 480D874180: to =, relay = none, delay = 174308, delay = 174304 / 3.1 / 0/0, dsn = 4.4.3, status = deferred (доставка временно приостановлена: хост или d Имя домена не найдено. Ошибка службы имен для name = zombine.com type = MX: Host not found, попробуйте еще раз)
Как я могу узнать, какой процесс потребляет всю нагрузку? Это действительно большая перегрузка для одноядерного VPS: ВНИМАНИЕ - средняя нагрузка: 3,06, 5,79, 3,42
mysql в порядке, apache2 вроде в порядке. постфикс а может и нет? что-нибудь еще я еще не определил?
Пожалуйста, дайте мне знать, как определить неправильный процесс и временно изменить или отменить приоритет postfix и т. Д., Чтобы убедиться, что apache2 и mysql остаются работоспособными. Эти 2 процесса важны для меня. Исходящие письма тоже, потому что они отправляют сообщения клиентам.
Согласно показанным вами журналам, постфикс доменного имени использует - zombine.com - не существует в вашем DNS или у него нет записи MX, поэтому postfix ошибается. Возможно, вам стоит попробовать запускать cronjob каждые 5 минут или около того, который проверяет, добавлена ли новая ошибка в системный журнал, затем запускается сверху и отправляет вам результаты по электронной почте. Оттуда вы можете выяснить, какой процесс потребляет больше всего памяти.
Эта ошибка, которую вы видите, не связана с адресом электронной почты; это проблема DNS. Убедитесь, что вы видите запись MX для вашего домена zombine.com с этого сервера, если он отправляет электронные письма:
dig in mx zombine.com
Postfix будет продолжать попытки отправлять эти электронные письма снова и снова в течение нескольких дней в случае «исправимого» сбоя, подобного этому.
Еще одна вещь, которую следует проверить, - есть ли у вас проблемы с загрузкой диска (проверьте использование процессора аппаратным прерыванием, "привет", в top
). Если это проблема, вы можете установить и запустить iotop
чтобы увидеть, что принимает на себя всю нагрузку.
Вы можете настроить эти параметры (в днях), чтобы указать, как долго postfix пытается доставить недоставленную почту для:
maximal_queue_lifetime (normal messages)
bounce_queue_lifetime (bounce messages)
Кроме того, убедитесь, что следующие настройки верны, чтобы убедиться, что вы не используете открытый ретранслятор (это может быть источником нежелательного SMTP-трафика, поскольку люди используют ваш сервер для рассылки спама):
mynetworks (in this case probably 127.0.0.1/32)
smtpd_client_restrictions (probably permit_mynetworks, reject_unauth_destination)
Затем очистите очередь почты:
postsuper -d ALL
Это чувствительно к регистру по соображениям безопасности. Затем вы должны найти это postqueue -p
показывает пустую очередь.