Ошибка на сервере имен sendmail не найдена

Я добавил этот код в файл sendmail.mc:

dnl # Uncomment and edit the following line if your outgoing mail needs to
dnl # be sent out through an external mail server:
dnl #
define(`SMART_HOST',`in.hes.trendmicro.eu')dnl
dnl #

Я сделал преобразование m4 для создания файла sendmail.cf, добавлен следующий код:

DSin.hes.trendmicro.eu

Я получаю следующую ошибку в примере / var / mail /:

<example1@example.com>... Host unknown (Name server:example.com: host not found)

Я не знаю, что я сделал здесь неправильно, новичок в sendmail. Я проверил некоторые параметры и увидел, что запущено много процессов httpd. ps axf | grep httpd | wc показывает что-то вроде этого:

387    2344   18354

В то время как нагрузка не очень впечатляющая. top выглядит так:

enter image description here

Очень небольшое количество процессов httpd время от времени запускается снова, но их общее количество почти постоянно увеличивается. Если я запустил службу httpd reload , количество процессов упадет до 0 и снова начнет увеличиваться в течение следующих нескольких минут или часов. Через некоторое время журнал Apache сообщает мне:

[error] server reached MaxClients setting, consider raising the MaxClients setting

Я сделал это и также изменил другие параметры конфигурации, но это не помогло. Независимо от того, какое значение установлено в MaxClients и ServerLimit , Apache не прекратит запускать новые процессы httpd до этих пределов. После этого, веб-сайт больше не доступен.

По данным AWStats, не было увеличения количества обращений к странице. Более того, в приложении PHP не было ни одного изменения. За исключением того, что все запросы блокируются через 30 минут, сайт работает быстро, как обычно. В качестве грязного и временного обходного пути Cron продолжает перезагружать Apache каждые полчаса.

Настройки Prefork / Worker за последние 3 года были следующими:

<IfModule prefork.c>
StartServers       4
MinSpareServers    5
MaxSpareServers   10
ServerLimit      128 
MaxClients       128 
MaxRequestsPerChild  600
</IfModule>

<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75 
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

Я поднял их до:

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   10
ServerLimit       640
MaxClients       640
MaxRequestsPerChild  1000
</IfModule>

<IfModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

После этого изменения Apache / HTTP стал недоступен примерно через 1 час.

Как это может произойти внезапно и какие варианты у меня есть, чтобы выяснить, откуда происходит это странное поведение?

3
задан 25 April 2016 в 18:07
1 ответ

Кулак, увеличение параметров предвключений только ухудшит вашу ситуацию. Поэтому восстановите предыдущую конфигурацию.

Чтобы исключить любую проблему с преформой/недостаточной конфигурацией, попробуйте ее отключить. Ситуация существенно меняется? Если да, то вы найдете свою проблему.

Если нет, то проблема связана с внешними факторами: например, может быть какой-то бот/скрипт нацелился на ваш сайт, открыв множество соединений (с относительным httpd-процессом). Если это так, то вы должны увидеть это из лог-файлов Apache.

Если этого недостаточно, то вы можете включить модуль mod_status для отображения подробной статистики. Затем, для доступа к этой статистике, необходимо выдать apachectl fullstatus. Смотрите здесь и здесь для получения более подробной информации.

.
2
ответ дан 3 December 2019 в 06:58

Теги

Похожие вопросы