ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Администрирование > *nix системы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Apache убивает систему
  #1  
Старый 22.09.2009, 10:04
svesve
Постоянный
Регистрация: 15.06.2007
Сообщений: 527
Провел на форуме:
1734541

Репутация: 214


По умолчанию Apache убивает систему

Имеем:
Freebsd 7.0
Apache/2.2.8
nginx/0.5.35 - как проксирующий веб сервер

Проблема:

Проведем тест при помощи ab (apache benchmark)

PHP код:
ap -n 10 -c 10 http://host/ 


при тестах от -n 30-100 -с 30-100 серваку становится очень плохо и он грубо говоря ложиться напрочь
судя по top порождается куча процессов (httpd) и далее ахтунг полный

для соединений 80 порта на фаере прописан keep-state

PHP код:
allow tcp from any to me dst-port 80,443 setup keep-state 


переломал всю голову, куда копать?
 
Ответить с цитированием

  #2  
Старый 22.09.2009, 10:46
freelsd
Участник форума
Регистрация: 25.10.2007
Сообщений: 177
Провел на форуме:
551782

Репутация: 58
Отправить сообщение для freelsd с помощью ICQ
По умолчанию

Насколько я понимаю, это лавинное порождение детей у апача. Не справляются, он рождает больше и тд...
Попробуй здесь поиграться:

StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
 
Ответить с цитированием

  #3  
Старый 22.09.2009, 11:19
ghostwizard
Участник форума
Регистрация: 04.12.2005
Сообщений: 202
Провел на форуме:
414834

Репутация: 99
По умолчанию

У тебя не настроен как надо апач. Убери вообще нафиг keep-alive. Поменяй настройки для дочерних процессов.

MinSpareServers, MaxSpareServers - отвечают за минимум и максимум дочерних процессов в ожидании. [1]

Т.к. судя по всему что у тебя апач дефолтный, то MaxClients означает для prefork максимальное кол-во дочерних процесов, если у тебя это значение в нуле, то они рождаются до бесконечности.

MaxRequestsPerChild - тут понятно, сколько запросов обрабатывает один дочерний процесс. [2]

В твоем случае, за всеми соединениями следит front-end nginx, его надо тоже настраивать [3]. Общение nginx - apache, в случае, если все на одной машине происходит практически молниеносно, поэтому keep-alive в данном случае для апача не нужен. Так же апачу не нужно иметь огромное кол-во дочерних процессов, т.к. если nginx еще и кэширует, то запросов к apache он делает намного меньше. Собственно, для этого nginx и создавался - снизить нагрузку на сервер за счет снижения кол-ва дочерних процессов apache.

Цитата:
allow tcp from any to me dst-port 80,443 setup keep-state
Эта запись не полная [4]. Keep-state лишь работает с check-state, предназачено для динамических правил в ipfw. [5]
Тебе файрволл можно не трогать вообще. Как выйдешь за предел в 10к соединений/с тогда можно будет что-то крутить.

Ref:
1. _http://httpd.apache.org/docs/2.0/mod/prefork.html
2. _http://httpd.apache.org/docs/2.0/mod/mpm_common.html
3. _http://adw0rd.ru/2009/nginx-and-apache-install/
4. _http://www.opennet.ru/openforum/vsluhforumID1/42434.html
5. _http://www.unixdoc.ru/index.php?mode=2&podmode=1&arcicle_id=32

Последний раз редактировалось ghostwizard; 22.09.2009 в 11:24..
 
Ответить с цитированием

  #4  
Старый 04.10.2009, 04:07
@D_
Новичок
Регистрация: 29.07.2009
Сообщений: 17
Провел на форуме:
44699

Репутация: 4
По умолчанию

убей апач, оставь nginx =) это общий совет. А по делу — искал бы причину в своём софте. Вряд ли это проблема апача, скорее того, что он пытается обработать. php (perl, python etc), mysql, memcache если юзаешь на прямую и так далее. Скорее всего apache отдает запрос кому-то и долго ждет ответа. Забивая детей новыми запросами, которые так же попадают в бесконечную очередь.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WebServers (apache, nginx, lighttpd, iis) - Задай вопрос, получи ответ. Krist_ALL Администрирование 8 28.05.2010 20:56
Slow Lori атака на веб-сервер Apache art2222 Мировые новости 0 26.06.2009 14:33
Web-сервер для Windows, nginx + apache + php + mysql + sendmail Dj_StaL ПО для Web разработчика 14 08.06.2009 13:45
Начальная настройка Apache Grinder Чужие Статьи 7 21.06.2006 21:24
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ