У меня apache2 работает на ubuntu 10.04 с оперативной памятью 512 МБ. Вроде все нормально, пока я не начну делать запросы к серверу. Когда я наблюдаю за использованием памяти, оно увеличивается примерно на 5-10% каждый раз, когда я перехожу на другую страницу. Я предполагаю, что это новые процессы apache, запущенные для сервера содержимого. Меня это не беспокоит, но это не возвращается, когда я перестаю запрашивать страницы.
Я использую Django и wsgi, если это имеет значение.
РЕДАКТИРОВАТЬ:
из: /etc/apache2/apache2.conf
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 5
MaxClients 15
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Я уже отредактировал mpm_prefork_module, чтобы он был меньше, но это не помогло!
Он не должен возвращаться. Проблема только в том, что вы бежите вне памяти. В противном случае большинство программ будет использовать как можно больше памяти и продолжать ее использовать.
Это похоже на работу, как и ожидалось. Несколько дочерних apache запускаются, потребляют некоторую память и продолжают работать в пределах максимального и минимального количества резервных серверов.
Вы можете просмотреть документация и, если хотите, внесите дополнительные изменения. Скажем, уменьшить MaxSpareServers. Тогда у вас не будет так много процессов apache.
Можете ли вы опубликовать здесь какие настройки вашего apache
MaxRequestsPerChild
MaxClients
также некоторые лучшие результаты или все, что вы видите, когда они скачут, могут помочь нам понять и объяснить, куда уходит память.