У меня есть вопрос. Должно ли со временем расти потребление памяти процессом apache? Мне интересно, является ли это нормальным поведением apache или мы можем каким-то образом вызывать это в коде?
По сути, у нас есть простой стек LAMP под управлением Drupal. При перезапуске apache процессы запускаются @ 120 МБ, и в конечном итоге все процессы достигают 500–1 ГБ памяти (резидентной, также известной как физическая без подкачки).
Это не похоже ни на время, ни на фактическую загрузку сервера.
Любая помощь очень ценится, спасибо!
Как правило, процессы Apache не должны расти без видимой причины. Если ваши процессы Apache действительно раздуваются, поскольку они обрабатывают запросы, и вы можете исключить кеши, и, как Zoredache, упомянутый в его комментарии, у вас может быть утечка памяти в каком-то запущенном скрипте.
Отладка утечек памяти оставлена в качестве упражнения для читателя - такие инструменты, как valgrind
может помочь.
Нет, использование памяти apache не должно расти нормально, поскольку дочерние процессы прекращаются через определенную точку. Если ваш apache съедает вашу память, вы можете настроить конфигурацию apache.
MaxRequestsPerChild 300
Timeout 15
KeepAlive On
MaxKeepAliveRequests 30
KeepAliveTimeout 3
помните, что чем больше вы сокращаете срок службы процессов, тем быстрее будет ваш сервер, но это увеличит использование вашего процессора.