Не убиваются процессы в apache2

12
P
На сайте с 16.07.2009
Offline
101
2955

Такая ситуация: apache стал выдавать ошибку [error] server reached MaxClients setting, consider raising the MaxClients setting, хотя до этого все нормально было. Трафик сильно не вырос, вроде не ддосят. Сейчас кажется, что просто не убиваются процессы. Проверил так: поставил в настройках prefork maxrequestperchild = 1, но в ps aux все равно есть процессы, которые остаются и не удаляются.

В какую сторону копать? Это проблема апача или искать ошибки в скриптах? В логах апача серьезных ошибок вроде нет.

LM
На сайте с 18.10.2009
Offline
117
#1

Сейчас какое значение стоит MaxClients? Попробуйте увеличить.

P
На сайте с 16.07.2009
Offline
101
#2
LinuxMan:
Сейчас какое значение стоит MaxClients? Попробуйте увеличить.

Нет, с этим все в порядке. Ставил 300 - сайт ложился через час с ошибкой превышение MaxClients. Ставил 3000 - сервер загинался из-за нехватки памяти через часов 8-10.

Сейчас вот что заметил - зависшие процессы по количеству совпадают с ошибкой File does not exist.

Получается, что из-за этого процессы зависают, и в последствии идет превышение MaxClients. Как сделать, чтобы эти процессы удалялись?

tester999
На сайте с 21.10.2004
Offline
149
#3

А шо таймаут говорит?

Andreyka
На сайте с 19.02.2005
Offline
822
#4

Перед апачем nginx есть?

Не стоит плодить сущности без необходимости
P
На сайте с 16.07.2009
Offline
101
#5
tester999:
А шо таймаут говорит?

Если вы про конфиг апача, то там таймаут 30

Andreyka:
Перед апачем nginx есть?

Ага, стоит.

Пришел к выводу что зависшие процессы как-то связаны с этими ошибками:

[Sun Jul 25 19:10:04 2010] [error] [client 127.0.0.1] File does not exist: /var/www/'+data+' (такой адрес из-за ошибок в JavaScript). Заблокировал их через nginx, вроде апач пришел в норму.

tester999
На сайте с 21.10.2004
Offline
149
#6
pashatlt:
Такая ситуация: apache стал выдавать ошибку
pashatlt:
Если вы про конфиг апача, то там таймаут 30

Чета я не понял юмора... 😂

P
На сайте с 16.07.2009
Offline
101
#7
tester999:
Чета я не понял юмора... 😂

попробовал вернуть 300, все равно процессы не убиваются ...

Server-status показывает, что процессы зависают в статусе "W" Sending Reply

Raistlin
На сайте с 01.02.2010
Offline
247
#8

список загружаемых модулей огласите, пожалуйста. И стату по трафику с файрволла снимите.

HostAce - Асы в своем деле (http://hostace.ru)
P
На сайте с 16.07.2009
Offline
101
#9
Raistlin:
список загружаемых модулей огласите, пожалуйста. И стату по трафику с файрволла снимите.

Intel® Core™ i7-920 Quad-Core 8 GB DDR3 RAM

Server version: Apache/2.2.9 (Debian)

Server built: Mar 28 2010 19:04:04

core

mod_log_config

mod_logio

prefork

http_core

mod_so

mod_alias

mod_auth_basic

mod_authn_file

mod_authz_default

mod_authz_groupfile

mod_authz_host

mod_authz_user

mod_autoindex

mod_cgi

mod_deflate

mod_dir

mod_env

mod_mime

mod_negotiation

mod_php5

mod_setenvif

mod_status

По трафику есть только такие данные (это за вчера):

Провалы это как раз когда количество процессов накапливались и вырубали сервер.

Вот еще инфа по php

PHP 5.2.6-1+lenny8 with Suhosin-Patch 0.9.6.2 (cli) (built: Mar 14 2010 09:07:33)

Copyright (c) 1997-2008 The PHP Group

Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

with eAccelerator v0.9.5.2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator

pashatlt добавил 26.07.2010 в 09:21

Вроде нашел скрипт, при котором подвисают процессы. Тогда возникает вопрос, каким образом может php скрипт вызвать зависание процесса apache?

Andreyka
На сайте с 19.02.2005
Offline
822
#10

Правильный ответ - настроить сервер так, чтоб апач убивался вне зависимости от скрипта, на уровне системы

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий