我正在验证生产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的单元计算参数分配感到困惑。
答案 0 :(得分:1)
7851762乘以8 kB大约是60 GB。
如果计算机专用于PostgreSQL数据库,我会将设置配置为30 GB。
此参数告诉PostgreSQL有多少内存可用于缓存其文件。如果该值较高,则PostgreSQL会估计嵌套循环连接的内面索引扫描会便宜一些,因为它假定索引可能会被缓存。