Посмотреть использование памяти в Postgresql

11

Я использую Postgresql на сервере Ubuntu, и мне нужно отслеживать использование памяти. В настоящее время у меня есть скрипты, выполняющиеся в одноминутном задании cron, которые отслеживают / регистрируют различную статистику и должны также отслеживать / регистрировать текущее использование памяти Postgresql. Я искал вокруг и не смог найти ничего, кроме того факта, что Postgresql хорошо использует разделяемую память, поэтому значения, задаваемые программой, такой как 'top', не точны.

Как я могу отслеживать общее использование памяти Postgresql в любой момент времени? Эти данные позже будут использованы для создания графиков для анализа.

Rauffle
источник

Ответы:

8

Использование памяти в Linux в целом и для Postgres в частности является довольно сложной темой , хорошей отправной точкой является блог Брюса Момджиана, посвященный теме и использованию smem . На эту тему стоит перейти по ссылкам в блоге Криса Сейбенманна .

Gavin
источник
Спасибо за ссылки, но похоже, что smem не будет работать, так как версия ядра слишком старая. Хорошие статьи, хотя.
Раффл
0

Вы можете использовать pmapкоманду для получения используемой памяти процесса:

# pmap -p PID
ByteNudger
источник
К сожалению, в этом случае pmap не очень полезен, так как Postgresql использует много общей памяти. Из-за этого общая память, сообщаемая такими инструментами, как pmap для Postgresql, больше, чем общая используемая память в системе.
Раффл