Как посмотреть сколько анонимной памяти занимает процесс в linux?
Как отследить какой процесс занял сколько анонимной памяти linux. есть сервер на котором растёт занимаемая анонимная память, но кроме БД (postgres) нет тяжёлых процессов.
Владимир, Так, хорошо. С анонимной памятью я понял.. А с чего Вы взяли, что растет именно именно эта память? Как вы ее контролируете изначально и понимаете, что именно она растет?
Рональд Макдональд, Алексей Черемисин,
Я мониторю память с помощью прометея и нод экспортера, полезная штука, там есть специальная метрика что показывает количество выделенных анонимных страниц и они росли, медленно но очень уверено.
Вроде нашёл способ найти проблему с помощью сайта markelov.blogspot.com/2009/01/linux-procmeminfo.html
пробежался по самым большим процессам, ( в статье описано как anonpage из /proc на процесс посчитать ) и нашёл несколько долгих подключений к postgresql которые выжирали по 1.5Гб в состоянии idle.
Я мониторю память с помощью прометея и нод экспортера
Крайне честные системы для решения проблем с утечкой памяти. А что по этому поводу имеют сказать аппликухи операционной системы?
пробежался по самым большим процессам
Процесс это запрос приложения к операционной системе на выделение аппаратных ресурсов. Каких, откуда и сколько выделить уже на усмотрение ОС, которая будет выделять и наделять по ситуации. Твои 1.5Гб в состоянии idle (не так уж и много) могут быть почти все на диске. Анонимные страницы памяти ОС обычно складирует с разделе подкачки. У тебя же он есть? Всё-таки сервер базы данных. Сами производители постгреса жалуют, чтобы он был.
Станислав Бодро́в,
Вот с апликухами было сложно в плане того что я не мог (видимо не докурил) как можно отфильтровать (обычно лезу в htop,free,vmstat ) конкретно анонимные страницы.
я видел в htop что они (процессы) делят с postgres кучу шаренной памяти и вроде как что-то используют, но убедится в том что это реально используется анонимная память я не мог (не знал как)
---
Вот про это тоже читал, но на диск ничего не было вытеснено.
Заклинание из мониторинга (я где-то нашёл расчёт метрики для честного мониторинга памяти) вовремя сработало - на диск ничего не успело упасть (своп пустой).
Хороший кстати вопрос разобраться, будет ли запрос в /proc возвращать страницы что в свопе, а если и будет, то как понять сколько он вытеснил а сколько нет (если конечно я правильно представляю себе механизм)