专栏首页SEian.G学习记录TiDB集群tikv节点内存占用较高问题排查

TiDB集群tikv节点内存占用较高问题排查

TiDB集群上线运行一段时间,近期巡检的时候发现一个问题,集群中TiKV节点内存占用比较高,尤其在导入数据的时候,节点的内存会更高

下面我们就针对TiKV节点高的问题进行分析:

首先确认下TiKV节点配置如下:

问题排查:

1、登录到单个TiKV接节点,查看内存占用情况

2、确认节点的THP(内存大页)是否关闭

关闭透明大页(即 Transparent Huge Pages,缩写为 THP)。数据库的内存访问模式往往是稀疏的而非连续的。当高阶内存碎片化比较严重时,分配 THP 页面会出现较高的延迟。

$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

从查看结果看,内存大页是关闭的

3、在 通过监控TiKV-Details RockDB面板确认是否是block size引起的,查看每一个TiKV节点的block size的内存占用都达到了最大设置10G

调整block size大小的配置,建议不超过机器内存的60%

调整参数,调整大小为7G,storage.block-cache.capacity: 7GB

$ tiup cluster edit-config tidb-prod001

调整完成之后,重启TiKV节点

$ tiup cluster reload tidb-prod001 -R tikv

重启完成后,查看内存占用情况

拓展:

TiKV的配置参数:

storage.block-cache 表示RocksDB 多个 CF 之间共享 block cache 的配置选项。当开启时,为每个 CF 单独配置的 block cache 将无效。

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的辛酸事儿(dbabitter),作者:SEianG

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-09-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 看不懂监控怎么办?TiDB 新推出了耗时关系图

    TiDB 使用 Prometheus 和 Grafana 提供了非常详细的监控指标。在遇到各种性能或稳定性问题时,这些监控一般是问题的关键线索。但详尽的细节监控...

    PingCAP
  • TiDB 4.0 新特性在电商行业的探索

    分库分表是一个非常普遍的问题,会增加我们业务逻辑的复杂性,并且多维度的 mapping 可能导致我们整体性能的下降。有了 TiDB 我们可以不用再考虑分库分表,...

    PingCAP
  • TiDB 在摩拜单车的深度实践及应用

    摩拜单车 2017 年开始将 TiDB 尝试应用到实际业务当中,根据业务的不断发展,TiDB 版本快速迭代,我们将 TiDB 在摩拜单车的使用场景逐渐分为了三个...

    PingCAP
  • TiDB 在摩拜的深度实践及应用

    摩拜单车 2017 年开始将 TiDB 尝试应用到实际业务当中,根据业务的不断发展,TiDB 版本快速迭代,我们将 TiDB 在摩拜单车的使用场景逐渐分为了三个...

    用户5927304
  • 高效编排有状态应用——TiDB 的云原生实践与思考

    云原生时代以降,无状态应用以其天生的可替换性率先成为各类编排系统的宠儿。以 Kubernetes 为代表的编排系统能够充分利用云上的可编程基础设施,实现无状态应...

    PingCAP
  • TiDB 4.0 新特性前瞻(四)图形化诊断界面

    某天,PongHat 公司 DBA 小王同学收到了业务侧的反馈:”小王啊,我们数据库查询现在突然变得很慢,业务已经紧急停了,能不能看下是什么情况?“

    PingCAP
  • 从零部署TiDB集群

    朋友圈,关注的公众号经常出现各个公司开始用TiDB的案例和各种技术分享。对TiDB蛮有兴趣,这几天终于可以尝试接触 TiDB,第一步当然是安装和部署。过程还是蛮...

    用户1278550
  • TiDB 3.0 GA,稳定性和性能大幅提升

    TiDB 是 PingCAP 自主研发的开源分布式关系型数据库,具备商业级数据库的数据可靠性,可用性,安全性等特性,支持在线弹性水平扩展,兼容 MySQL 协议...

    PingCAP
  • TiSpark (Beta) 用户指南

    TiSpark 是 PingCAP 推出的为了解决用户复杂 OLAP 需求的产品。借助 Spark 平台本身的优势,同时融合 TiKV 分布式集群的优势,和 T...

    PingCAP
  • 深入浅出 TiDB 框架

    TiDB主要分为3个核心组件:TiDB Server ,PD Server 和TiKV Server,还有用于解决用户复杂OLAP需求的TiSpark组件。部署...

    孙玄@奈学教育
  • tidb本周精选 2021年的第 31 周

    将数据按照 key 的范围划分成大致相等的切片(下文统称为 Region),每一个切片会有多个副本(通常是 3 个),其中一个副本是 Leader,提供读写服务...

    程序员小王
  • TiDB 4.0 在 VIPKID 的应用实践

    本文主要分享 TiDB 4.0 版本在 VIPKID 的一个应用实践。主要涉及两个部分,第一部分是现在 TiDB 在 VIPKID 的一些应用场景,第二部分是介...

    PingCAP
  • 我来组成头部 - RDBMS和NoSQL的最佳组合TiDB

    TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) ...

    王知无-import_bigdata
  • DBA 减负捷径:拍个 CT 诊断集群热点问题 | TiDB 4.0 新特性前瞻(一)

    古代,医者看病讲究「望、闻、问、切」,通过病人的外部综合表现对病症做出判断。现代,CT 的发明使得人们可以使用 X 光穿透身体各组织内部,将整体的情况以图像的方...

    PingCAP
  • TiDB 在网易游戏的应用实践

    作者介绍: 李文杰,网易互娱高级数据库工程师,TUG 2019 年度和 2020 年度 MVA。主要负责大数据研发和数据分析工作,为产品提供精细化运营指导;同时...

    PingCAP
  • TiDB 2.1 GA Release Notes

    2018 年 11 月 30 日,TiDB 发布 2.1 GA 版。相比 2.0 版本,该版本对系统稳定性、性能、兼容性、易用性做了大量改进。

    PingCAP
  • TiDB 在华泰证券的探索与实践

    原文链接:https://mp.weixin.qq.com/s/Hp-ZJLdvd3z2w9IJ_32NRw?scene=25#wechat_redirect

    PingCAP
  • TiDB 在爱奇艺的应用及实践

    爱奇艺,中国高品质视频娱乐服务提供者,2010 年 4 月 22 日正式上线,推崇品质、青春、时尚的品牌内涵如今已深入人心,网罗了全球广大的年轻用户群体,积极推...

    PingCAP
  • PingCAP 开源 TiDB 自动化部署运维工具 TiDB Operator

    TiDB Operator 是 TiDB 在 Kubernetes 平台上的自动化部署运维工具。目前,TiDB Operator 已正式开源(pingcap/t...

    PingCAP

扫码关注云+社区

领取腾讯云代金券