У моего небольшого экземпляра ec2 с 1,7 ГБ памяти, использующего Amazon AMI на базе CentOS, есть проблема с Apache, использующим слишком много памяти, чем следовало бы. Если вы посмотрите на снимок экрана, использование памяти будет на уровне 90-100%, пока я не перезагружу службу httpd, где она запустится снова, увеличивая скорость до 90+%.
Я был бы очень признателен за помощь в поиске проблемы. Возможно ли это "нормальное" поведение Apache, чтобы использовать всю доступную память? Или есть возможная утечка, которую я должен выследить. В данный момент я немного озадачен тем, что может происходить.
Мы используем prefork Apache MPM, а не sql или что-то подобное - просто apache. Сайт здесь .
apache-2.2
memory
httpd
lamp
memory-usage
Amivit
источник
источник
RequestHeader set X-Request-Start "%t"
если вы еще этого не сделали. Это будет выглядеть как «Очередь запросов», когда вы перейдете на сервер приложений> Обзор - это может помочь вам разобраться в сути проблемы.Ответы:
Как сказал HTTP500, вам, вероятно, не стоит беспокоиться об этом, если машина фактически не задыхается. Посмотрите на Помощь! Linux съел мою оперативную память! , Это не совсем аналогичная ситуация, поскольку у вас есть процессы, а не буферы, использующие ОЗУ, но это не так уж и далеко: физическая ОЗУ вашей машины - это ресурс, который нужно использовать либо с буферами ядра, либо с запасными рабочими процессами Apache для быстрой обработки входящих Запросы. Если вы не используете оперативную память, вы переплатили за размер вашей коробки.
В любом случае, если вы хотите поиграть с настройками MPM, документация Apache: http://httpd.apache.org/docs/current/mod/prefork.html.
Вы можете уменьшить MinSpareServers, StartServers и т. Д., Поскольку вы заявили, что на сайте мало трафика. Тогда у вас будет больше свободной оперативной памяти, которая будет использоваться буферами ядра для их гнусных целей.
источник
Linux, использующий всю вашу память, работает нормально, память, которая не используется, в противном случае переименовывается в дисковый кеш. смотри: linux съел моего барана
Вы можете убедиться в этом, посмотрев на выходные данные
free -m
и ожидая увидеть что-то вроде этого:строка +/- buffers / cache - это та, которую вы хотите. Он добавляет кэшированный RAM к свободному, чтобы дать вам лучшее представление о том, сколько памяти действительно доступно. В этом случае Вы хотите обратить внимание на номер 3416, а не 101.
источник