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

Какие журналы нужно проверять на предмет зависшего сервера LAMP?

Я использую Centos 5.7. Я использую панель управления Apache, MySQL, PHP, Courier-IMAP, Qmail и Plesk в типичной настройке сервера веб-хостинга. Часто зависает.

Пришлось перезапустить сервер через админку, так как не было доступа к Plesk или SSH ... Как предотвратить повторение этого?

Процессор: AMD Phenom (tm) II X4
Оперативная память: 8 ГБ

В журнале Apache заметил несколько ошибок:

# tail -20 /var/log/httpd/error_log

[Mon Sep 03 06:12:33 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/web
[Mon Sep 03 06:12:34 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/php-my-admin
[Mon Sep 03 06:12:34 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/websql
[Mon Sep 03 06:12:35 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpmyadmin
[Mon Sep 03 06:12:36 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin
[Mon Sep 03 06:12:36 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2
[Mon Sep 03 06:12:37 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/php-my-admin
[Mon Sep 03 06:12:38 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.2.3
[Mon Sep 03 06:12:38 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.2.6
[Mon Sep 03 06:12:39 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.5.1
[Mon Sep 03 06:12:39 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.5.4
[Mon Sep 03 06:12:40 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.5.5-rc1
[Mon Sep 03 06:12:41 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.5.5-rc2
[Mon Sep 03 06:12:41 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.5.5
[Mon Sep 03 06:12:42 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.5.5-pl1
[Mon Sep 03 06:12:43 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.5.6-rc1
[Mon Sep 03 06:12:43 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.5.6-rc2
[Mon Sep 03 06:12:44 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.5.6
[Mon Sep 03 06:12:45 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.5.7
[Mon Sep 03 06:12:45 2012] [error] [client 202.29.34.28] File does not exist: /var/www/vhosts/default/htdocs/phpMyAdmin-2.5.7-pl1

Также заметил некоторые медленные запросы mysql:

# Query_time: 23.734215  Lock_time: 0.000111 Rows_sent: 1  Rows_examined: 2501281
use yasooyam_yasoodb;
SET timestamp=1346149823;
SELECT COUNT(user_history_product.ID) FROM user_history_product WHERE user_history_product.PRODUCT_ID=915;

# Query_time: 293.916966  Lock_time: 1.163037 Rows_sent: 1  Rows_examined: 2501280
SET timestamp=1346149823;
SELECT COUNT(user_history_product.ID) FROM user_history_product WHERE user_history_product.PRODUCT_ID=172;

# Query_time: 61.295134  Lock_time: 0.000345 Rows_sent: 331  Rows_examined: 331
use pumexinf_mdb;
SET timestamp=1346149825;
show tables;

# Query_time: 16.869923  Lock_time: 2.281526 Rows_sent: 1889  Rows_examined: 9330
use yasooyam_yasoodb;
SET timestamp=1346586973;
SELECT user_items.ID, user_items.TYPE, user_items.USER_ID, user_items.SHOW_IN, user_items.CATEGORY, user_items.SUB_CATEGORY, user_items.COUNTRY, user_items.LANGUAGE, user_items.TITLE, user_items.START_TIME, user_items.END_TIME, user_items.DATE, user_items.DESCRIPTION, user_items.ATTACH, user_items.IMAGE, user_items.IMAGE_AUTHOR, user_items.IMAGE_SOURCE, user_items.VIDEO_URL, user_items.THUMB, user_items.AUTHOR, user_items.SOURCE, user_items.CREATE_DATE, user_items.UPDATE_DATE, user_items.STATUS FROM user_items WHERE user_items.TYPE=9 AND user_items.STATUS=1;

Зависание, безусловно, не является результатом фатальной ошибки (файл не найден) - согласно журналам apache2.

Это зависит от того, сколько памяти вы предоставили в my.cnf для mysqld.

Вам нужно немного узнать, почему это зависает.

Несколько вещей, на которые следует обратить внимание для расследования:

  • Зависание сервера (отказ в обслуживании) может быть результатом двух причин: перегрузки процессора или приложения, вызывающего отказ в обслуживании.
  • Проверьте системный журнал, а не журналы приложений, чтобы получить больше информации.
  • Примите меры предосторожности, установив deflateDOS и SELinux Проверить их журналы
  • Имейте в виду такие команды, как top и netstat они очень пригодятся.

Попробуйте установить программное обеспечение для мониторинга, например Мунин. С помощью плагинов munins вы можете отслеживать множество вещей с течением времени. Например, вы можете увидеть всплеск запросов Apache перед зависанием сервера, дискового ввода-вывода или подключений mysql. При наличии такого программного обеспечения гораздо проще найти источник зависаний.