На прошлой неделе я неожиданно получаю ошибки на моем сервере. Я пытаюсь зайти на свой веб-сайт и получаю ошибку 503.
Когда я проверяю top
и другие вещи, которые я вижу:
httpd.conf
var\www\vhosts\example.com\logs\access_log
нет ничего похожего на (D) DOS-атаку. Вижу нормальный запрос к серверу. var\log\httpd\access_log
var\www\vhosts\example.com\logs\error_log
Я вижу слишком много таких ошибок: [Fri Jan 17 10:56:26 2014] [warn] [client 78.180.71.157] mod_fcgid: can't apply process slot for /var/www/cgi-bin/cgi_wrapper/cgi_wrapper
\var\log\mysqld_log
Нет ошибки\var\log\error_log
без ошибок в то время\var\log\suexec_log
Нет ошибкиКак я могу определить, что заставляет мой веб-сайт делать DISK IO 100%, среднюю нагрузку 10, очень высокую скорость подкачки и сервер не отвечает на запросы. И как я могу предотвратить это в будущем?
Когда я перезапускаю mysql и httpd, проблема решается. Но как мне диагностировать причину
Предупреждение mod_fcgid: can't apply process slot for /var/www/cgi-bin/cgi_wrapper/cgi_wrapper
означает, что Apache исчерпал все доступные ему ресурсы и не может обслуживать клиента. Клиент получит 503
ошибка.
Судя по графикам, причиной ваших проблем является либо всплеск трафика, либо неправильная конфигурация программного обеспечения. Когда количество запросов к ОЗУ увеличивается, на вашем сервере заканчивается ОЗУ, поэтому он достигает пика ввода-вывода, чтобы переставить все, что может, на диск (отсюда и 100% ввод-вывод), что вызывает iowait
также увеличить. Это предупреждение выдается после того, как все ресурсы исчерпаны или ваш сервер становится достаточно медленным для тайм-аута Apache.
Вероятно, перезапуск просто освобождает эту память. Ваш ответ будет одним из двух: 1) увеличить оперативную память, доступную вашему серверу, за счет фактического увеличения или за счет разгрузки MySQL (который требует много памяти) на другой сервер, или 2) просмотр вашего кода на предмет утечки.