TiDB集群上线运行一段时间,近期巡检的时候发现一个问题,集群中TiKV节点内存占用比较高,尤其在导入数据的时候,节点的内存会更高
$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
复制
$ tiup cluster edit-config tidb-prod001
复制
$ tiup cluster reload tidb-prod001 -R tikv
复制
shared
是否开启共享 block cache。
默认值:true
capacity
共享 block cache 的大小。
默认值:系统总内存大小的 45%
单位:KB|MB|GB
为了提高读取性能以及减少对磁盘的读取,RocksDB 将存储在磁盘上的文件都按照一定大小切分成 block(默认是 64KB),读取 block 时先去内存中的 BlockCache 中查看该块数据是否存在,存在的话则可以直接从内存中读取而不必访问磁盘,可以理解为MySQL中的innodb buffer pool。
BlockCache 按照 LRU 算法淘汰低频访问的数据,TiKV 默认将系统总内存大小的 45% 用于 BlockCache,用户也可以自行修改 storage.block-cache.capacity 配置设置为合适的值,但是不建议超过系统总内存的 60%。
写入 RocksDB 中的数据会写入 MemTable,当一个 MemTable 的大小超过 128MB 时,会切换到一个新的 MemTable 来提供写入。TiKV 中一共有 2 个 RocksDB 实例,合计 4 个 ColumnFamily,每个 ColumnFamily 的单个 MemTable 大小限制是 128MB,最多允许 5 个 MemTable 存在,否则会阻塞前台写入,因此这部分占用的内存最多为 4 x 5 x 128MB = 2.5GB。这部分占用内存较少,不建议用户自行更改。
文章转载自DBA的辛酸事儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
史诗级革新 | Apache Flink 2.0 正式发布
严少安
149次阅读
2025-03-25 00:55:05
NineData 社区版:从 MySQL 到 TiDB 数据复制新选择
严少安
139次阅读
2025-03-13 17:27:45
PingCAP 2025 校园招聘 | 开源领航,星耀前程
PingCAP
104次阅读
2025-03-27 09:55:55
你好,3月 | 各大数据库社区又要卷出新高度啦
严少安
84次阅读
2025-03-04 17:50:59
2025w11 | 图数据库了解一下
严少安
58次阅读
2025-03-21 16:51:24
【TiDB 深圳地区交流回顾】大规模 TiDB 国产化替代在金融、跨境电商企业的最新实践!
TiDB Club
37次阅读
2025-03-10 10:29:44
TiDB 观测性解读(一)丨索引观测:快速识别无用索引与低效索引
PingCAP
28次阅读
2025-03-12 10:23:21
DBdoctor v3.3.0.2版本发布,新增Oracle索引推荐,强化TiDB审计日志功能
DBdoctor
28次阅读
2025-03-07 10:29:31
国产数据库如何赋能智慧医疗?3.28 TiDB 与您相约宜昌 “医院云数智技术实践研讨及成果展示交流会”
PingCAP
26次阅读
2025-03-25 18:14:39
架构师必看!现代应用架构发展趋势与数据库选型建议丨TiDB vs MySQL 专题(一)
PingCAP
23次阅读
2025-03-19 11:21:15