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

Как узнать об использовании памяти Apache?

Я хочу измерить использование памяти моего сервера Apache. Могу ли я использовать команду pmap / ps и передать все идентификаторы процессов httpd и принять это за общее использование?

В большей части блога они предполагают, что команда ps дает правильный результат для примера программы, но не для apache.

В pmap

pmap PID1 PID2 ....

Кажется, что pmap дает больше информации, чем просто использование оперативной памяти. Есть ли какая-нибудь команда в Unix / Perl, с помощью которой я могу получить правильную информацию об использовании памяти?

Мой сценарий перехода на Python

https://raw.github.com/pixelb/scripts/master/scripts/ps_mem.py

просто запустите ps_mem.py, и он сообщит вам, сколько места httpd использует для всех процессов, которые он разветвил. Вы не можете суммировать вывод ps, используя как память res, потому что большая часть памяти, которая, по его словам, используется процессом, распределяется между процессами. Так, например, на одном из моих серверов образец процессов apache

apache    6799  0.2  0.7 590052 63064 ?        S    12:56   0:07 /usr/sbin/httpd
apache    6802  0.3  0.7 589084 60804 ?        S    12:57   0:08 /usr/sbin/httpd
apache    6803  0.2  0.7 588004 59748 ?        S    12:57   0:05 /usr/sbin/httpd

Можно подумать, что каждый процесс использует около 60 мегабайт оперативной памяти. У меня их 100 открытых, так что можно сказать, что он использует 600 мегабайт барана.

Ну реальная память 365 из вывода скрипта

286.6 MiB +  79.3 MiB = 365.9 MiB   httpd (38)