Postgres资源使用统计和配置

时间:2017-05-31 15:18:27

标签: postgresql optimization server postgresql-9.4

我正在使用postgres服务器9.4。 从pg_admin或psql工具,我可以SHOW ALL;这将给我postgres服务器的配置。例如shared_buffers is 8GBeffective_cache_size is 24GB

最近,数据库变得越来越大,查询变得越来越慢。 我知道可能需要使用explain重新评估查询。

除了查询优化之外,我如何知道使用状态? 例如,从8GB的shared_buffer或24GB的effective_cache_size中使用了多少或任何其他配置值 - 是时候增加这些配置值了吗?

1 个答案:

答案 0 :(得分:1)

https://www.postgresql.org/docs/current/static/runtime-config-resource.html

shared_buffers = 8GB已经是巨大价值,您可以使用https://www.postgresql.org/docs/current/static/pgbuffercache.html将其检查到某个级别 如果您仍觉得不够,请记住您可能需要增加max_wal_size。同样在9.4或9.5之前(不确定,它定义发生在9.3)流式复制从站只使用一个核心来扫描shared_buffers未使用的已删除页面,因此具有大型shared_buffers的服务器非常滞后。反对增加的两个论点来自头顶。

更改effective_cache_size是一个更令人惊讶的想法。通常它从头开始设置为最大值。因为它基本上告诉计划者他可以依靠多少RAM。因此,如果安装耗尽RAM的新软件,则可能需要减少它,如果向计算机添加更多RAM,则可能会增加。否则 - 为什么规划者应该期望更多的RAM可用于查询?..

以上是我对这两个配置的个人谦逊经历。回答你的问题我说试试pg_buffercache检查shared_buffers使用情况,并用set effective_cache_size to some_bigger_value检查执行计划 - 如果你发现Postgres开始使用的索引没有使用较小的值和执行速度加快 - 这是集群增加它的时间。