Назад | Перейти на главную страницу

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

У моего небольшого экземпляра 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.