Я использую 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.
Вам нужно немного узнать, почему это зависает.
Несколько вещей, на которые следует обратить внимание для расследования:
top
и netstat
они очень пригодятся.Попробуйте установить программное обеспечение для мониторинга, например Мунин. С помощью плагинов munins вы можете отслеживать множество вещей с течением времени. Например, вы можете увидеть всплеск запросов Apache перед зависанием сервера, дискового ввода-вывода или подключений mysql. При наличии такого программного обеспечения гораздо проще найти источник зависаний.