Вопрос к гуру :)Есть сервер linux + apache 1.3 + php
В процессе работы (скажем через час-два после ребута) с помощью top я обычно наблюдаю приблизительно такую картину (своп отключен):
154 processes: 151 sleeping, 3 running, 0 zombie, 0 stopped
Mem: 1019408k av, 1011132k used, 8276k free, 14408k buff, 282100k cachedПроцессы апача обычно вот такие (по ps awwux):
nobody 17430 0.0 0.7 22828 7728 ? S 01:00 0:02 /usr/local/apache/bin/httpd -DSSL
nobody 24523 0.0 1.1 26964 12112 ? S 01:17 0:03 /usr/local/apache/bin/httpd -DSSLЕсли я сделаю `apachectl restart` то через пару минут в top я увижу вот такую картину:
152 processes: 149 sleeping, 3 running, 0 zombie, 0 stopped
Mem: 1019408k av, 772632k used, 246776k free, 24048k buff, 365936k cachedПроцессы апача (по ps) в среднем выглядят также, как и до перезагрузки.
То есть, по сути после перезагрузки количество процессов осталось практически то же (плюс-минус несколько), памяти каждый процесс занимает вроде бы столько же.
Но...
Вопрос: откуда взялось ~200 мегабайт свободной памяти?
Или вопрос в другой форме: куда исчезнут мои 200 метров памяти после ~часа работы?
Попробуй такой тест.
1. Перезапусти апач.
2. Померяй память.
3. Зайди на 5-6 своих сайтов на этом сервере, желательно, где есть объемные скрипты - движки, порталы, форумы и т.п.
4. Померяй память еще раз.Что наблюдается?
>Попробуй такой тест.
Спасибо за помощь :)
Это я сгоряча поспешил тему создать. Уже разобрался. С математикой все в порядке: процессы таки "растут" со временем, т.к. php на освобождает память после отработки скрипта, оставляя ее "на всякий случай".
Проблему удалось до некоторой степени решить путем:
KeepAlive Off
MaxRequestsPerChild 100хотя конечно радикальный метод - это апгрейдить память....
>Проблему удалось до некоторой степени решить путем:
>KeepAlive Off
>MaxRequestsPerChild 100В качестве полумеры можно попробовать оставить KeepAlive On, но уменьшить KeepAliveTimeout, скажем, до 5 секунд.
Также см. похожий топик:
http://www.opennet.me/openforum/vsluhforumID8/2814.html