У моего небольшого экземпляра ec2 с памятью 1,7 ГБ, на котором работает Amazon AMI на базе CentOS, возникла проблема с Apache, использующим слишком много памяти, чем следовало бы. Если вы посмотрите на снимок экрана, использование памяти будет на уровне 90-100%, пока я не перезагружу службу httpd, где она начнется заново, увеличивая свой путь до 90+%.
Я был бы очень признателен за помощь в поиске проблемы. Возможно, это «нормальное» поведение apache, позволяющее использовать всю доступную память? Или есть возможная утечка, которую я должен выследить. На данный момент я немного не понимаю, что может происходить.
Мы используем префорк Apache MPM, а не sql или что-то подобное - только apache. Сайт Вот.
Как сказал 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 - это то, что вам нужно. Он добавляет кэшируемую оперативную память, чтобы дать вам лучшее представление о том, сколько памяти действительно доступно. В этом случае вы хотите обратить внимание на номер 3416, а не на 101.