tencent cloud

云数据库 PostgreSQL

动态与公告
产品动态
产品简介
产品概述
产品特性
产品优势
应用场景
信息安全说明
地域和可用区
产品功能列表
大版本生命周期说明
MSSQL 兼容版
产品计费
计费概述
实例类型与规格
购买方式
退费说明
欠费说明
备份空间收费说明
快速入门
创建 PostgreSQL 实例
连接 PostgreSQL 实例
管理 PostgreSQL 实例
数据导入
通过 DTS 迁移数据
内核能力介绍
内核版本概述
内核版本更新动态
查看内核版本
自研内核功能介绍
数据库审计
审计服务说明
开通审计服务
查看审计日志
修改审计服务
审计性能说明
用户指南
实例管理
升级实例
CPU 弹性扩容
只读实例
账号管理
数据库管理
参数管理
日志管理及分析
备份与恢复
数据迁移
插件管理
网络管理
访问管理
数据安全
租户及资源隔离
安全组
监控与告警
标签
AI 实践
使用 tencentdb_ai 插件调用大模型
使用 tencentdb_ai 插件构建 AI 应用
结合 Supabase 快速构建基于云数据库 PostgreSQL 的后端服务
实践教程
跨库访问
如何在 PostgreSQL 中自动创建分区
基于 pg_roaringbitmap 实现超大规模标签查找
一条 SQL 实现查询附近的人
如何配置云数据库 PostgreSQL 作为 GitLab 外部数据源
通过 cos_fdw 插件支持分级存储能力
通过 pgpool 实现读写分离
通过 auto_explain 插件实现慢 SQL 分析
使用 pglogical 进行逻辑复制
使用 Debezium 采集 PostgreSQL 数据
在 CVM 本地搭建 PostgreSQL 异地灾备环境
只读实例与只读组实践教程
如何使用云函数定时操作数据库
表膨胀处理
性能白皮书
测试方法
测试结果
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Read-only Replica APIs
Backup and Recovery APIs
Parameter Management APIs
Security Group APIs
Performance Optimization APIs
Account APIs
Specification APIs
Network APIs
Data Types
Error Codes
常见问题
相关协议
Service Level Agreement
Terms of Service
词汇表
联系我们
文档云数据库 PostgreSQL 内核能力介绍自研内核功能介绍开启 syscache/relcache 自动缓存淘汰机制

开启 syscache/relcache 自动缓存淘汰机制

PDF
聚焦模式
字号
最后更新时间: 2025-06-05 11:32:36

功能背景

在大规模复杂业务场景下,进程长连接,且该连接打开了很多的表、索引等,导致 syscache 和 relcache 缓存压力巨大,进而导致内存占用过高或缓存命中率下降,影响整体性能。

功能介绍

云数据库 PostgreSQL 支持基于 LRU ( Least Recently Used )的 syscache 和 relcache 缓存淘汰机制,用户开启功能后,您可以再设定一个进程最大允许的 syscache/relcache 数量。系统能够动态识别和淘汰长时间未被访问的关系缓存,优先保留热点元数据缓存,降低内存占用。

支持版本

内核小版本为 v13.20_r1.21、v14.17_r1.29、v15.12_r1.15、v16.8_r1.9、v17.4_r1.3 及以上的数据库实例支持该功能。您也可以通过 内核小版本升级 获取该功能。

适用场景

长连接环境下的 syscache / relcache 缓存管理。

使用说明

对于 syscache ,系统提供两个参数,用于管理 syscache 淘汰机制。
参数名称
说明
取值建议
tencentdb_syscache_max_num
一个进程最多能拥有多少个 syscache ,超过此数量开始进行缓存淘汰。
默认值为-1 ,表示不开启该功能。
如果发现进程内存占用过高,或者 syscache 数量异常增长,建议取值范围10000 - 50000。
如需进行修改,可选取20000等中间值,根据监控和实际效果逐步调整。
tencentdb_syscache_evict_num
一次淘汰会淘汰多少个 syscache。
默认值为1,表示一次只淘汰一个。
一般情况下,保持默认值1即可,保证淘汰过程平滑、对性能影响较小。
如果 syscache 增长较快,或者需要更快释放内存,可以适当提高该值为5 - 10 ,但不建议设置过大,以免一次性淘汰过多缓存影响查询性能。
对于 relcache ,系统提供两个参数,用于管理 relcache 淘汰机制:
参数名称
说明
取值建议
tencentdb_relcache_max_num
一个进程最多能拥有多少个 relcache ,超过此数量开始进行缓存淘汰。
默认值为-1 ,表示不开启该功能。
如果系统中存在大量表或频繁访问不同表,可能导致 relcache 数量激增,建议取值范围为1000 - 5000,具体数值请根据实例的内存大小和负载情况调整。
如果实例内存充足且访问表数量不多,可以保持默认值-1,关闭该功能,避免频繁淘汰带来的性能开销。
tencentdb_relcache_evict_num
一次淘汰会淘汰多少个 relcache。
默认值为1,表示一次只淘汰一个。
如果希望淘汰更快释放缓存,可以适当调大该值,比如5 - 10,减少淘汰次数,但可能带来瞬时性能波动。
如果希望淘汰过程更平滑,避免对性能产生较大影响,保持默认值1较为稳妥。

操作步骤

进入 云数据库 PostgreSQL 控制台 ,在需要管理 relcache 缓存的实例详情页,选择参数设置,单击参数运行值后的

,根据需要修改 tencentdb_syscache_max_num 、tencentdb_syscache_evict_num 、tencentdb_relcache_max_num 和 tencentdb_relcache_evict_num 的参数值。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈