我正在验证生产 Postgres 实例中的一些配置。我们的数据库服务器有 32 GB RAM。从 pg_settings 中,我看到 effective_cache_size 设置为:
postgres=> select name, setting, unit from pg_settings where name like 'effective_cache_size';
name | setting | unit
----------------------+---------+------
effective_cache_size | 7851762 | 8kB
(1 row)
据我了解,该值相当于 7851762 X 8 KB = 62.8 GB。如果我的计算正确,我们基本上是在告诉优化器我们有 62 GB 用于此参数,而我们只有 32 GB 物理 RAM。
如果我计算这个参数有误,请纠正我。我总是对计算 8 KB 单元的参数分配感到困惑。
最佳答案
7851762 乘以 8 kB 大约为 60 GB。
如果计算机专用于 PostgreSQL 数据库,我会将设置配置为 30 GB。
此参数告诉 PostgreSQL 有多少内存可用于缓存其文件。如果该值很高,PostgreSQL 将估计嵌套循环连接与内侧索引扫描的成本较低,因为它假设索引可能会被缓存。
关于postgresql - Postgres内存计算 effective_cache_size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56330085/