Apache "httpd" процесс, использующий память всех моих серверов

У моего небольшого экземпляра ec2 с 1,7 ГБ памяти, использующего Amazon AMI на базе CentOS, есть проблема с Apache, использующим слишком много памяти, чем следовало бы. Если вы посмотрите на снимок экрана, использование памяти будет на уровне 90-100%, пока я не перезагружу службу httpd, где она запустится снова, увеличивая скорость до 90+ %.

введите описание здесь

Я был бы очень признателен за помощь в определении местонахождения проблемы. Возможно ли это "нормальное" поведение Apache, чтобы использовать всю доступную память? Или есть возможная утечка, которую я должен выследить. В данный момент я немного озадачен тем, что может происходить.

Мы используем prefork Apache MPM, а не sql или что-то подобное - просто apache. Сайт здесь.

2 ответа

Решение

Как сказал HTTP500, вам, вероятно, не стоит беспокоиться об этом, если машина фактически не задыхается. Посмотрите на Помощь! Linux съел мою оперативную память!, Это не совсем аналогичная ситуация, так как у вас есть процессы, а не буферы, использующие ОЗУ, но это не так уж и далеко: физическая ОЗУ вашей машины - это ресурс, который нужно использовать либо с буферами ядра, либо с запасными рабочими процессами Apache для оперативной обработки входящих Запросы. Если вы не используете оперативную память, вы переплатили за размер вашей коробки.

В любом случае, если вы хотите поиграть с настройками MPM, документация Apache: http://httpd.apache.org/docs/current/mod/prefork.html

Вы можете уменьшить MinSpareServers, StartServers и т. Д., Поскольку вы заявили, что на сайте мало трафика. Тогда у вас будет больше свободной оперативной памяти, которая будет использоваться буферами ядра для их гнусных целей.

Linux, использующий всю вашу память, является нормальным, память, которая не используется, иначе переименовывается в дисковый кеш. смотри: linux съел моего барана

Вы можете проверить это, посмотрев на вывод free -m и ожидаем увидеть что-то вроде этого:

             total       used       free     shared    buffers     cached
Mem:          7889       6887        101          0        106       2307
-/+ buffers/cache:       5373       3416
Swap:         1903         17       1886

строка +/- buffers/cache - это та, которую вы хотите. Он добавляет кэшированный RAM к свободному, чтобы дать вам лучшее представление о том, сколько памяти действительно доступно. В этом случае Вы хотите обратить внимание на номер 3416, а не 101.

Другие вопросы по тегам