更新时间:2024-11-12 GMT+08:00
分享

Global SysCache参数

enable_global_syscache

参数说明控制是否使用全局系统缓存功能。

参数类型:布尔型

参数单位:

取值范围

  • on:表示开启全局系统缓存功能。
  • off:表示不开启全局系统缓存功能。

默认值on

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值,开启全局系统缓存功能可以降低系统缓存内存占用,提高并发扩展能力。若打开该参数,需要结合使用global_syscache_threshold,此时推荐使用线程池模式。若打开该参数后需要访问备机,建议设置备机wal_level级别为hot_standby以上。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

global_syscache_threshold

参数说明:全局系统缓存占用内存的最大值,使用时需要打开enable_global_syscache参数。

参数类型:整型

参数单位:kB

取值范围16384 ~ 1073741824

默认值:163840(即160MB)

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,设置为163840,不带单位,表示163840kB;设置为160MB,带单位,表示160MB。取值如果要带单位,必须为kB、MB、GB。

设置建议建议设置为热点DB个数和线程个数的最小值乘以每个DB分配的内存大小,即global_syscache_threshold = min(count(hot dbs),count(threads)) * memofdb。

热点DB数即访问较为频繁的数据库数量。线程数在线程池模式下取线程池线程个数和后台线程个数之和,非线程池模式不需要计算这个值,直接使用热点DB数。

memofdb即平均每个db应该分配的内存,每个DB的底噪内存是2M,平均每增加一个表或者索引,增加11k内存。

设置不当的风险与影响:如果设置的值过小,会导致内存频繁淘汰,内存存在大量碎片无法回收,导致内存控制失效。

相关文档