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

Тема в разделе "Администрирование серверов", создана пользователем alfaexpert, 10 дек 2009.

Статус темы:
Закрыта.
Модераторы: mefish, stooper
  1. alfaexpert

    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|0711st_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 ?
     
  2. r00t

    r00t

    Регистр.:
    30 июл 2006
    Сообщения:
    192
    Симпатии:
    65
    Конфиг для виртуал хоста в студию. Мож у тя в DirectoryIndex все это перечислено?
     
  3. alfaexpert

    alfaexpert

    Регистр.:
    23 июл 2008
    Сообщения:
    183
    Симпатии:
    27
    Сомневаюсь тот ли Конфиг посмотрел

    В /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

     
  4. r00t

    r00t

    Регистр.:
    30 июл 2006
    Сообщения:
    192
    Симпатии:
    65
    Ну вот и ответ на твой вопрос появился )
    Оставь тока юзаемые индексы чаще всего хватает index.php(html,htm)

    Если юзается перл то index.pl(cgi)
     
  5. alfaexpert

    alfaexpert

    Регистр.:
    23 июл 2008
    Сообщения:
    183
    Симпатии:
    27
    Да вот уже убрал их через WHM

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

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

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


    Буду дальше наблюдать за сервером.Если что интересное будет отпишусь в этой теме
     
  6. alfaexpert

    alfaexpert

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


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

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

    Вложения:

  7. r00t

    r00t

    Регистр.:
    30 июл 2006
    Сообщения:
    192
    Симпатии:
    65
    keepalive показывай из httpd.conf
    Можно так
    cat /etc/httpd/conf/httpd.conf | grep KeepAlive
     
  8. alfaexpert

    alfaexpert

    Регистр.:
    23 июл 2008
    Сообщения:
    183
    Симпатии:
    27
    :ai: Глянул grep`ом по конфигу нету такого вообще
     
  9. r00t

    r00t

    Регистр.:
    30 июл 2006
    Сообщения:
    192
    Симпатии:
    65
    ищи в конфиге Include , мож отдельным файлом подключается
     
  10. alfaexpert

    alfaexpert

    Регистр.:
    23 июл 2008
    Сообщения:
    183
    Симпатии:
    27
    В include конфиге нашел следующее
     

    Вложения:

Статус темы:
Закрыта.