Большая нагрузка на Apache: как выявить причины ?

Статус
В этой теме нельзя размещать новые ответы.

alfaexpert

Знаток
Регистрация
23 Июл 2008
Сообщения
183
Реакции
27
Есть выделенный сервер CentOS + WHM Apache 2.2 версии
На сайте около 500 сайтов, высоконагруженных проектов вообще нет
Apache Status постоянно показыват от 7 до 30 коннектов одновременно
В обычное время load average не выше 1-2
Проблема вот в чем: периодически не понятно откуда load average прыгает до 100-200, команда top показывает большое количество процессов Apache
Перезапускаю Apache нагрузка исчезает
Сначала думал поисковые боты нагружают забанил Cuil Ovale и еще пару мелочей, теория не оправдалась, нагрузка снова появилась:(
Осмотрел все логи сервера, какие только можно ничего странного не нашел
В WHM есть такая вешь как просмотр процессов сервера и при клике по PID можно его убить и отследить его действия (Trace)
Во время одной из нагрузок, успел быстро накликать на Trace процесса и увидел вот такую вот картину
PHP:
lstat("/home/eaxmplesite", {st_mode=S_IFDIR|0711, st_size=4096, ...}) = 0
lstat("/home/eaxmplesite/public_html/index.html.var", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.htm", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.htm", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.html", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.shtml", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.shtml", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.xhtml", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.xhtml", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.wml", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.wml", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.perl", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.perl", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.pl", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.pl", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.plx", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.plx", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.ppl", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.ppl", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.cgi", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.cgi", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.jsp", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.jsp", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.js", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.js", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.jp", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.jp", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.php4", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.php4", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
stat("/home/eaxmplesite/public_html/index.php3", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
lstat("/home/eaxmplesite/public_html/index.php3", 0x7fff13d510a0) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
access("/var/cpanel/bwlimited/eaxmplesiteno.ru", F_OK) = -1 ENOENT (No such file or directory)
Сразу видно что как будто к Apache обращается клиент запрашивающий по очереди файлы index.pl index.js index.jsp и тп
Бредовость ситуации в том что таких файлов на сайте нету вообще
Еще раз глянул в логи апача там даже нет этих самых
No such file or directory
Как будто невидимка по серверу бегал (либо я чего то пропустил )
Вопросы:
Сталивкался ли кто нибудь с такого вида проблемами ? Это какой то бот по серверу бегает либо это глюки Apache ?
 
Конфиг для виртуал хоста в студию. Мож у тя в DirectoryIndex все это перечислено?
 
Сомневаюсь тот ли Конфиг посмотрел

В /usr/local/apache/conf/httpd.conf
прописаны для каждого домена

PHP:
UserDir public_html

# DirectoryIndex is set via the WHM -> Service Configuration -> Apache Setup -> DirectoryIndex Priority
DirectoryIndex index.html.var index.htm index.html index.shtml index.xhtml index.wml index.perl index.pl index.plx index.ppl index.cgi index.jsp index.js index.jp index.php4 index.php3 index.php default.htm default.html home.htm index.php5 Default.html Default.htm home.html index.phtml
 
Ну вот и ответ на твой вопрос появился )
Оставь тока юзаемые индексы чаще всего хватает index.php(html,htm)

Если юзается перл то index.pl(cgi)
 
Да вот уже убрал их через WHM

А как такой момент может влиять на резкую загрузку ?

До этого где то как год сервер работал такого не замечалось

А сейчас пришлось даже собственную систему мониторинга писать чтобы знать когда сервер висит а когда работает


Буду дальше наблюдать за сервером.Если что интересное будет отпишусь в этой теме
 
Изменения, которые были сделаны не помогли :(
Apache опять нагрузился в произвольный момент времени
netstat -n не выдал никаких признаков DDOSa или большого количества поисковых роботов (около 150 соединений для сервера я думаю мало )
Сейчас смотрю в сторону того что где скрипт зависает
Кстати RLimitMEM для Apache установил ограничение в 621 мегабайт (всего 2 гига на сервере)
Это много или мало ?


новая информация:

Server uptime: 7 seconds
Total accesses: 107 - Total Traffic: 724 kB
CPU Usage: u1.67 s.5 cu0 cs0 - 31% CPU load
15.3 requests/sec - 103.4 kB/second - 6.8 kB/request
67 requests currently being processed, 0 idle workers

WWKCKCKKKKWWWWWKWWWWWWKWWWKWWKWWWWKWWKWWWKWWKKKWWKKKKKWKKKWWWWKW
KWKW............................................................
................................................................
................................................................

:mad: Сервер опять завис server-status показал кучку клиентов, которые ожидают соединения, а почему так висит не понятно, судя по данным не так уж и много клиентов висит
 

Вложения

  • нагрузка.jpg
    нагрузка.jpg
    83,5 KB · Просмотры: 54
keepalive показывай из httpd.conf
Можно так
cat /etc/httpd/conf/httpd.conf | grep KeepAlive
 
ищи в конфиге Include , мож отдельным файлом подключается
 
В include конфиге нашел следующее
 

Вложения

  • Без имени.gif
    Без имени.gif
    10,7 KB · Просмотры: 58
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху