【TiDB 使用环境】生产环境 /测试/ Poc
【TiDB 版本】7.5
【操作系统】linux 7.5
我都是默认配置,按官方文档的说法最多占用服务内存的75%才对
你思路没错,应该就是block-cache的问题。
通过set config往下压就行了。
https://docs.pingcap.com/zh/tidb/stable/dynamic-config/#在线修改集群配置
show config where name like ‘%storage.block-cache.capacity%’;—看下是多少,看你的配置顶多设置成13G
set tikv config storage.block-cache.capacity=13G;
tiup cluster edit-config tidb_name
修改:
server_configs:
tikv:
storage.block-cache.capacity: 28991029248
加载:
tiup cluster reload tidb_name -R -N下
![]()
我查了下 是 13.5G.这个大了 需要小一点?
如果想要内存立竿见影的效果设置小一点的话,可以设置成10G,内存占用应该会很快的降下来。
不过按理你设置成13.5G,内存顶多也就占到这么多了,你的内存占用不会再多了。
tikv机器出现内存告警问题,通常与几个因素有关:
1、 一台机器是否有混合情况出现?
如果出现混部的情况,要尽量避免。
2、确认tikv配置情况,这里主要就是 tikv 的 block-cache 配置了。
这个可以参考官方文档的推荐值。
3、 基础环境配置环境不当,比如未正确关闭 内存大页 THP 等。
如果是这个情况,请关闭内存大页。
楼主试着都分析排查下。
是不是混合部署了?我也遇到了
怎么解决的
我是单独部署的TIKV
303课程里建议是45%吧
检查配置参数是不是设置不合理
生产环境的话,最好不要混部
RocksDB 的块缓存默认占用系统内存的 45% 用于缓存热数据块加速读取。若这两台 TiKV 是多实例部署在同一物理机,或服务器本身内存不大,这种默认配置会让缓存占用内存超标;另外若手动配置时将storage.block-cache.capacity 设得过大,也会导致块缓存持续占满内存,触发 OOM。可通过监控block-cache-usage 指标
TiKV 内存爆多因 block-cache 配置过大,尝试下调其容量并避免实例混部呗