2017-05-31 51 views
1

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

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

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

回答

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可用于查询?..

以上是我对这两个配置的个人谦虚经验。回答你的问题,我会说试试pg_buffercache检查shared_buffers的使用情况,并检查执行计划set effective_cache_size to some_bigger_value - 如果你看到Postgres开始使用索引,它没有使用更小的值和执行速度 - 现在是增加集群智慧的时候了。