Процес Apache “httpd”, використовуючи всю мою пам’ять серверів


9

Мій маленький екземпляр ec2 з 1,7 Гб оперативної пам’яті, на якому працює Amazon AMI на базі CentOS, має проблеми з Apache, використовуючи занадто багато пам'яті, ніж слід. Якщо ви подивитесь на скріншот, використання пам'яті складе 90-100%, поки я не перезавантажую httpd-сервіс, де він запуститься заново, збільшуючи шлях назад до 90+%.

введіть тут опис зображення

Я б дуже вдячний за допомогу щодо вирішення проблеми. Це, можливо, "нормальна" поведінка апаша, щоб використовувати всю наявну пам'ять? Або можливий витік, який мені доведеться розшукувати. На даний момент я трохи здивований тим, що може відбуватися.

Ми використовуємо префорк Apache MPM, і жоден sql або щось подібне - просто apache. Веб-сайт тут .


1
Здається, не використовується жоден Swap, і в чому проблема?
HTTP500

Чи не повинен турбувати факт, що його використання стільки пам'яті? Вибачте за досвід початківців, я думаю, це може бути неправильне припущення. Можливо, це нормальна поведінка, і що Apache призначений використовувати всю пам'ять, яку він може захопити, незважаючи на те, що веб-сайт із низьким трафіком?
Амівіт

1
Я помітив, що ви використовуєте NewRelic, який також може записувати час, проведений в apache (може бути корисним), якщо ви додасте цей рядок до свого httpd conf: RequestHeader set X-Request-Start "%t"якщо ви ще цього не зробили. Це з’явиться як "Запит черги", коли ви перейдете на сервер додатків> Огляд - може допомогти вам дійти до нижньої частини проблеми.
КМ.

Відповіді:


8

Як сказав HTTP500, ви, мабуть, не повинні турбуватися про це, якщо машина насправді не захлинається. Погляньте на Довідку! Linux з’їв мою оперативну пам’ять! . Це не зовсім аналогічна ситуація, оскільки у вас є процеси, а не буфери з використанням оперативної пам’яті, але це не так вже й далеко: фізична оперативна пам’ять вашого машини - це ресурс, який потрібно використовувати або з буферами ядра, або з запасними робочими процесами Apache, щоб оперативно обробляти вхідні дані запити. Якщо ви не використовуєте оперативну пам’ять, ви переплатили за розмір коробки.

У будь-якому випадку, якщо ви хочете грати з налаштуваннями MPM, документація Apache є http://httpd.apache.org/docs/current/mod/prefork.html

Ви можете, можливо, зменшити MinSpareServers, StartServers тощо, оскільки ви заявили, що на сайті мало трафіку. Тоді у вас буде більше вільної оперативної пам’яті, яку споживають буфери ядра для своїх недобрих цілей.


4

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

лінія +/- буфери / кеш - це та, яку ви хочете. Він додає кешований таран безкоштовно, щоб ви краще зрозуміли, скільки пам’яті дійсно доступно. У цьому випадку ви хочете звернути увагу на номер 3416, а не на 101.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.