Находим скрипт который грузит систему через httpd процесс и server-status

Самый простой способ, это найти какой URL загружает процессор, уничтожить PID и исправить скрипт с ошибкой.

Сделать это можно, сконфигруриров файл httpd.conf

У некоторых он расположен по адресу /etc/httpd/conf/httpd.conf, у меня - /usr/local/etc/apache22/httpd.conf

Для этого впишем в него, после строки DocumentRoot следующую информацию:

# Включаем подробную информацию
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
# если на сервере используется 1 IP-адрес, то можно дать доступ скриптам на адрес 127.0.0.1
Allow from 127.0.0.1
# если на сервере используется несколько IP-адресов, то для скриптов нужно дать доступ на каждый или на нужные, например:
# доступ для скриптов системы которые будут работать от IP адреса 78.145.57.89

Allow from 78.145.57.89
# доступ для скриптов системы которые будут работать от IP адреса 98.57.194.95
Allow from 98.57.194.95
# так же можно написать свой интернет IP-адрес, к примеру он у Вас 95.79.92.14
Allow from 95.79.92.14
</Location>

Примечание: почитайте комментарии выделенные серым цветом, думаю они могут Вам пригодится

Обратите внимание, модули status_module и info_module должны быть раскомментированы, они в Вашем конфиге выглядят приблизительно так:

LoadModule status_module libexec/apache2/mod_status.so
LoadModule info_module libexec/apache2/mod_info.so

Перезапустите Apache.

Теперь, можно обратиться к своему сайту по URL http://site.ru/server-status и посмотреть текущую статистику доступа к страницам сайтов.

Если на Вашем сайте в файле .htaccess не указаны какие-то настройки, перекрывающие доступ к /server-status, то перед Вами появится информация о текущих запросах к сайтам и их URL.

Вам нужно посмотреть на столбец CPU, это и есть загрузка процессора. В найденной строке, справа будет URL страницы, а слева будет отображаться PID - идентификатор процесса.

К примеру, мы нашли самый загружаемый процесс PID и его номер 56789. Теперь, чтобы избавиться от этого процесса выполним команду:

kill -s 9 56789

Дальше, Вам нужо будет понять, какой скрипт работает с страницей URL, которая загрузила Ваш сервер, и конечно устранить ошибки в найденном скрипте.

Неплохое, более подробное описание можно почитать на сайте lissyara.su


12.01.2010 11:17

Комментарии

Спасибо)
Дмитрий |
в тему, несколько примеров разрешить доступ с домена и поддоменов сайта foo.com <Location /server-status> SetHandler server-status Order Deny,Allow Deny from all Allow from .foo.com </Location> Еще, очень не рекомендую выставлять серверстатус голой жопой в интернет. или переименовывайте адрес серверстатуса <Location /server-status-my-secret-address> SetHandler server-status </Location> или закрывайте доступ на http basic auth <Location /server-status> SetHandler server-status AuthName "Apache status" AuthType Basic AuthUserFile /etc/server-status.passwd require valid-user </Location> в /etc/server-status.passwd добавить юзера
Luna2 |
заметка: ExtendedStatus On нужно писать после: Include conf.d
Заметка |
заметка: Если вы включите mod_status и также установите ExtendedStatus On, тогда на каждый запрос Apache будет выполнять два вызова gettimeofday(2) (или times(2), в зависимости от вашей ОС), и (pre-1.3) несколько дополнительных вызовов time(2). Когда это все выполнено, отчет по статусу содержит временные метки. Для наилучшего быстродействия установите ExtendedStatus off (это сделано по умолчанию). mod_status возможно нужно сконфигурировать так, чтобы только несколько пользователей имели к нему доступ, вместо открытия его для всех, но это имеет очень малое значение на общую производительность. Хорошая статья на эту тему http://www.opennet.ru/base/dev/perf_tuning.txt.html
Заметка |

Copyrights © 2007 - 2026 YaPro.Ru