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.