Время от времени мой сервер apache дает сбой, получая сообщение об ошибке MaxClients. В моем исследовании у меня сложилось впечатление, что у меня может быть нехватка памяти (только что проверил, и MaxClients установлен на 1500, хотя количество процессов apache колеблется между 40 и 100)
Во всяком случае, это лишь небольшая предыстория.
Когда я бегу top
Мне сказали, что у меня всего около 15 ГБ, 14 ГБ используется, а Free, похоже, сейчас колеблется между 500 МБ - 1 ГБ (хотя примерно часом ранее это было около 3-4 ГБ бесплатно)
Я также бегал ps_mem.py
однако, и это показывает, что используется только 3-4 ГБ!
Почему разница? И какой из них правильный?
ps_mem.py
ИМО немного точнее, потому что правильно оценивает объем разделяемой памяти там, где вершина глючит.
лучшие чтения /proc/<PID>/statm
тогда как ps_mem.py читает более подробную информацию из /proc/<PID>/smaps
и с большей точностью оценивает общее использование демона множественной обработки.
Подробности рекомендую прочитать через ps_mem.py
код