开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

PolarDB这个问题是由于缓存未释放导致的吗?

在PolarDB Serverless中,当节点CPU使用率低于50%,RAM使用率低于80%时,理论上应触发节点收缩。但实际情况是即使业务量很少,CPU使用率很低,内存却未被回收,导致收缩规则难以触发。请问这是由于缓存未释放导致的吗?
397ab8c193235ae26aa3765bfdab5e32.png

展开
收起
三分钟热度的鱼 2024-01-17 20:28:42 31 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    PolarDB Serverless的弹性伸缩规则中,当单节点的CPU使用率高于80PolarDB Serverless的弹性伸缩规则中,当单节点的CPU使用率高于80%或内存使用率高于90%时,会触发本节点资源的扩展。关于您提到的CPU收缩到极低但仍有业务运行,而内存没有回收的问题,可能的原因如下:

    1. 可能存在缓存数据,这些数据在多个计算节点间共享,从而降低了存储成本。但这种共享也可能带来缓存一致性/同步问题。
    2. PolarDB的资源、存储、网络在Serverless架构下实现了垂直隔离,这可能导致某些资源不会被及时回收。

    为了解决或优化这一问题,您可以考虑以下建议:

    1. 根据业务实际情况,调整Serverless的弹性伸缩规则,例如降低CPU或内存的阈值,使其更早地触发扩容或缩容。
    2. 观察业务的访问模式,尽量避免在高峰时段有大量的缓存操作,以减少缓存数据的积累。
    3. 如果发现内存使用率持续较高,但实际业务并不需要这么多资源,可以考虑调整数据库的配置,例如增大缓存大小或优化查询语句,以释放不必要的资源。
    2024-01-18 13:32:55
    赞同 展开评论 打赏
  • 这个图里,看着pcu是维持在9,内存在80%+,内存有缓存。如北楼所说,现在内存没收下来,是内存和稳定性的考虑,新版本做了优化后,内存可以回收更多。此回答整理自钉群“PolarDB专家面对面 - HTAP(列存索引) ”

    2024-01-17 20:38:13
    赞同 展开评论 打赏

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。

相关电子书

更多
2023云栖大会:PolarDB for AI 立即下载
2023云栖大会:AnalyticDB PostgreSQL 立即下载
2022云栖大会:打造世界级云原生数据库开源社区 立即下载