查看PostgreSQL的内存使用情况

我在Ubuntu服务器上运行Postgresql,并且需要能够监控其内存使用情况。目前,我有一些脚本在每分钟的cron作业中运行,用于监控/记录各种统计数据,并且还需要监控/记录Postgresql当前的内存使用情况。我已经搜索过了,但除了Postgresql充分利用共享内存,所以像'top'这样的程序给出的值不准确之外,没有找到太多相关信息。 我应该如何监控Postgresql在任何给定时间点的总内存使用情况?这些数据将用于后续的分析图表生成。
2个回答


谢谢提供的链接,但看起来smem也无法工作,因为内核版本太旧了。不过,这些都是好文章。 - Rauffle

你可以使用pmap命令来获取一个进程的已使用内存。
# pmap -p PID

很不幸,在这种情况下,pmap并不是非常有用,因为PostgreSQL使用了大量的共享内存。由于这个原因,像pmap这样的工具对于PostgreSQL所报告的总内存有时会超过系统上可用的总内存。 - Rauffle