详情页标题前

阿里云RDS数据库缓存淘汰-云淘科技

详情页1

为了降低长连接的内存占用,确保数据库不会因为过多的长连接而导致内存不足,支持进程级的缓存淘汰功能,使用LRU(Least Recently Used)的策略释放不常使用的缓存,从而降低连接的内存使用量,提升RDS PostgreSQL实例的稳定性。

前提条件

PostgreSQL 14或以上版本均支持此功能,如提示不支持,请升级内核小版本,具体操作,请参见升级内核小版本。

背景信息

PostgreSQL中,后端进程每访问到一个表,会将该表的元信息缓存到本地,并且这些缓存不会被主动释放,以减少后续对磁盘的访问。这导致长连接可能会积累大量的缓存,并导致内存溢出(OOM)。因此,为了提高RDS PostgreSQL的稳定性,需要引入缓存淘汰机制,及时释放不常用的缓存。

应用场景

具有大量长连接的SAAS场景

影响

本文中涉及修改的参数均不涉及重启实例。

注意事项

为了确保RDS PostgreSQL实例的正常运行,一些特殊的缓存信息无法淘汰,因此,在极端情况下,无法保证您设置的缓存上限被完全满足。

操作步骤

RDS PostgreSQL的连接缓存主要可分为 relcache(用于缓存用户表的元信息),syscache(用于缓存系统表的元组)和 plancache(用于缓存用户定义的执行计划)。RDS PostgreSQL当前支持通过参数设置,调整relcachesyscache保留缓存的数量,plancache不支持限制。

说明

如果期望监控每个进程的缓存使用量,还需要使用CREATE EXTENSION rdsutils安装依赖插件,同时通过参数设置功能修改参数rds_enable_cache_monitor取值为on

  • 参数rds_enable_cache_monitor设置为on时,数据库性能会有下降,每条SQL会额外耗时2毫秒左右。

  • 参数rds_enable_cache_monitor只能通过控制台修改,更多信息,请参见设置实例参数。

修改当前连接

-- 当前连接开启 relcache 的淘汰功能,最多缓存 1000 个用户表
SET rds_relcache_max_cached_relations = 1000;
-- 关闭当前连接 relcache 的淘汰功能
SET rds_relcache_max_cached_relations = -1;


-- 当前连接开启 syscache 的淘汰功能,最多缓存 10000 系统表的元组
set rds_syscache_max_cached_tuples = 10000;
-- 关闭当前连接 syscache 的淘汰功能
set rds_syscache_max_cached_tuples = -1;

设置所有连接

前往控制台设置参数rds_relcache_max_cached_relationsrds_syscache_max_cached_tuples。更多信息,请参见设置实例参数。

相关参数解释

参数名

参数说明

取值建议

rds_enable_cache_monitor

是否监控每个进程的缓存使用量。

取值范围:

  • on:监控

  • off(默认值):不监控

根据实际需要进行设置。

rds_relcache_max_cached_relations

单个连接缓存用户表数量的上限。

取值范围:[-1, INT_MAX]

默认值:-1,表示关闭该功能。

  • 该参数合适的取值与用户业务关系密切。业务涉及到的表数量越多,该值应该越大。

  • 如果使用了分区表或timescaledb等插件,则建议设置为-1关闭该功能,或者将该参数设置为较大的值。

  • 如果该值设置过小,会导致数据库性能下降,推荐该值不低于 1000。

rds_syscache_max_cached_tuples

单个连接缓存系统表元组数量的上限。

取值范围:[-1, INT_MAX]

默认值:-1,表示关闭该功能。

  • 该参数合适的取值与用户业务关系密切。表的数量,字段越多,该值应该越大。

  • 如果使用了分区表或timescaledb等插件,则建议设置为-1关闭该功能,或者将该参数设置为较大的值。

  • 如果该值设置过小,会导致数据库性能下降,推荐该值不低于 5000。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/156364.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 阿里云RDS数据库设置性能自动扩容-云淘科技

    通过数据库自治服务DAS(Database Autonomy Service)的自动扩容功能,可以帮助RDS MySQL实例自动扩容性能以适应高峰流量,有效保障线上业务稳定性。本文介绍如何开启自动性能扩容。 前提条件 实例的计费方式为包年包月或按量付费。 说明 如果计费方式为Serverless,则实例性能会自动扩缩容,无需设置。 实例的系列为高可用系列。 …

    阿里云数据库 2023年12月9日
  • 阿里云RDS数据库临时混访方案(同时保留经典网络和专有网络地址)-云淘科技

    为满足日益增多的网络迁移需求,RDS新增了网络混访功能,可实现在无访问中断的情况下将经典网络平滑迁移到VPC上。 重要 由于经典网络存在网络安全隐患,云盘实例已全面升级为专有网络,本地盘实例逐步关闭售卖。为了确保您的网络安全性建议切换为专有网络。关于如何切换网络类型,请参见从经典网络切换为专有网络(VPC)。 背景信息 以往将RDS实例从经典网络迁移到VPC…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云RDS数据库索引使用率-云淘科技

    自治服务提供索引使用率查询功能,用户可以查询表中已经存在的索引的使用率情况,以及索引的碎片率。 前提条件 实例不能是RDS SQL Server 2008 R2云盘版。 操作步骤 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。 在左侧导航栏中,选择自治服务 > 性能优化。 选择索引使用率页签。 页面介绍 索引使用总览:展示RDS实例使用索引…

    2023年12月9日
  • 阿里云RDS数据库DescribeParameterTemplates – 查看参数模板详情列表-云淘科技

    该接口用于查询数据库参数模板。 接口说明 适用引擎 RDS MySQL RDS PostgreSQL RDS SQL Server RDS MariaDB 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试调试授权信息当前API暂无授权信息透出。…

    阿里云数据库 2023年12月9日
  • 阿里云RDS数据库恢复方案概览-云淘科技

    本文介绍在各种场景下如何进行RDS PostgreSQL相关的数据恢复。 场景一:恢复误释放的实例 回收站:进入回收站,并选择地域。如果在回收站里找到实例,可以重建恢复实例。 说明 RDS PostgreSQL实例在手动释放、到期或退款后均会进入回收站。但如下情况除外: 退款或手动释放已创建未超过7天的实例。 因阿里云账号欠费被系统自动释放的按量付费实例。 …

    阿里云数据库 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。