Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: В top процессы httpd "толстеют" (утечки памяти?)
Форумы портала PHP.SU » Серверное администрирование » Apache и другие веб-серверы » В top процессы httpd "толстеют" (утечки памяти?)

Страниц (1): [1]
 

1. naoborod - 16 Февраля, 2011 - 04:18:01 - перейти к сообщению
Конфигурация:
CentOS 5.3 x86_64
frontend - nginx
backend - Apache/2.2.3
PHP 5.3.5 (eAccelerator v0.9.6.1)
MySQL 5.1.54
Все это на физическом сервере. Работает 6 сайтов с разным уровнем посещаемости. Статику отдает nginx.
Вопрос в следующем: после рестарта Апача, судя по данным top, каждый процесс httpd потребляет 9-12 МБ памяти, но постепенно каждый процесс начинает занимать все больше памяти. За сутки процессы "толстеют" до 45-48 МБ, за двое - уже до 83-86. Несмотря на то, что сайты разные, все процессы "весят" примерно одинаково.
Таких процессов всегда от 4-10 ночью до 8-16 днем (больше бывало только при попытках атак). В php.ini скрипту дано 32 МБ памяти. Для нескольких особо тяжелых случаев (парсеры) объем памяти добавляется прямо в скрипте. Долговременно работающих скриптов нет.
Если кто-то сталкивался с подобным, подскажите, пожалуйста, кула копать.
2. DeepVarvar - 16 Февраля, 2011 - 08:20:14 - перейти к сообщению
naoborod пишет:
скрипту дано 32 МБ

Дайте 8мб и посмотрите результат. Но скорее всего "вес" процессов не изменится.
naoborod пишет:
процессы httpd

Они самые, "fucking threads". Попробуйте Apache "постарше", да и не только Apache.

Вот с моего лаптопа:

deep@ubuntu-laptop:~$ apache2 -v
Server version: Apache/2.2.12
Server built: Aug 18 2009 13:02:37

Та же версия стоит на "боевом" Debian'e, примерно с той же конфигурацией как и у вас:
frontend - nginx 0.7.67
backend - Apache 2.2.12
MySQL 5.1.37
PHP 5.2.10 (нюансы не помню, x-cache есть и Fast-CGI)

Никогда не было утечек. Работает по пол года не выключаясь. После профилактики поднимается сразу и без проблем.
3. naoborod - 16 Февраля, 2011 - 08:58:25 - перейти к сообщению
DeepVarvar, вы правы, эксперименты с объемом памяти были - снижение ведет только к появлению процессов httpd <defunct> но не к уменьшению веса процессов. А вот с версиями поэкспериментировать вряд ли у меня получится - это "боевая" машина. На тестовом сервере с почти такой же конфигурацией проблемы не наблюдается. Такое впечатление, что при малой нагрузке объем памяти, "пожираемый" скриптами как-бы "обнуляется", когда активных процессов нет.
4. JustUserR - 16 Февраля, 2011 - 14:59:50 - перейти к сообщению
naoborod пишет:
Такое впечатление, что при малой нагрузке объем памяти, "пожираемый" скриптами как-бы "обнуляется", когда активных процессов нет.
В качестве возможного варианта решения предполагаеомй задачи допустимо осуществление модификации конфигурации web-сервера таким образом чтобы система исполнения web-приложений обеспечивала работу на основании FastCGI-интерфейса - указанный подход позволяет осуществить созджания непрерывного функционирующего CGI-приложения реализованного на языках типа C/C++ с мануальным контролем памяти - который обеспечивает запуск дочерних приложений и явную очистку памяти после осуществления их выполнения

 

Powered by ExBB FM 1.0 RC1