Postgresql 读取pg_缓存输出
我正在使用postgres-9.3(在cenos6.9中)并试图理解pg_buffercache表的输出 我运行了以下命令:Postgresql 读取pg_缓存输出,postgresql,Postgresql,我正在使用postgres-9.3(在cenos6.9中)并试图理解pg_buffercache表的输出 我运行了以下命令: SELECT c.relname,count(*) AS buffers FROM pg_class c INNER JOIN pg_buffercache b ON b.relfilenode=c.relfilenode INNER JOIN pg_database d ON (b.reldatabase=d.oid AND d.datname=current_d
SELECT c.relname,count(*) AS buffers FROM pg_class c INNER JOIN
pg_buffercache b ON b.relfilenode=c.relfilenode INNER JOIN
pg_database d ON (b.reldatabase=d.oid AND
d.datname=current_database()) GROUP BY c.relname
ORDER BY 2 DESC LIMIT 5;
下面的输出显示了一个使用6594缓冲区的表。这是我在数据(主表)中插入了大量数据,然后选择并更新了数据
我还运行了“Selectfrompg_buffercache where is dirty”,其中显示了大约50个条目
我应该如何解释这些数字?缓冲区计数是否对应于我创建扩展后的所有事务或最近的事务。如何确定我的特定操作是否使用了适当数量的缓冲区
这是我的设置:
# show shared_buffers;
shared_buffers
----------------
1GB
# show work_mem;
work_mem
----------
128kB
# show maintenance_work_mem;
maintenance_work_mem
----------------------
64GB
和当前的空闲内存(我在这台机器上有64GM内存)。我有一个混合工作负载的机器,有周期性的插入和大量的选择。目前,数据库和表很小,但将增长到至少200万行
$ free -m
total used free shared buffers cached
Mem: 64375 33483 30891 954 15 15731
/+ buffers/cache: 18097 46278
Swap: 32767 38 32729
基本上,我试图理解如何正确使用这个pg_buffercache表。我应该定期运行此查询吗?我是否需要相应地更改我的共享缓冲区 我做了一些阅读和测试,这就是我发现的。在此处找到用户查询: 下面是一些给其他有类似问题的人的注释
$ free -m
total used free shared buffers cached
Mem: 64375 33483 30891 954 15 15731
/+ buffers/cache: 18097 46278
Swap: 32767 38 32729