Postgres内存计算Effective_cache_size

时间:2019-05-27 17:12:06

标签: postgresql configuration postgresql-9.4

我正在验证生产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,而物理RAM只有32 GB。

如果我错误地计算了此参数,请纠正我。我总是对为8 KB的单元计算参数分配感到困惑。

1 个答案:

答案 0 :(得分:1)

7851762乘以8 kB大约是60 GB。

如果计算机专用于PostgreSQL数据库,我会将设置配置为30 GB。

此参数告诉PostgreSQL有多少内存可用于缓存其文件。如果该值较高,则PostgreSQL会估计嵌套循环连接的内面索引扫描会便宜一些,因为它假定索引可能会被缓存。