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