tikv结点IO Util每隔10分钟峰值达到80%

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:
    SELECT tidb_version()
    RELEASE VERSION: v4.0.2
    Edition: Community
    Git COMMIT HASH: 328b6d0a955c4668cf3188d02a6df42e16eaab4e
    Git Branch: heads/refs/tags/v4.0.2
    UTC Build TIME: 2020-07-01 08:19:48
    GoVersion: go1.13
    Race Enabled: FALSE
    TiKV MIN VERSION: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
    CHECK TABLE BEFORE DROP: FALSE

  • 【问题描述】:

  1. 发现问题:tikv的3个结点周期性(每隔10分钟)IO Util会有个峰值达到80%左右(Overview->System info监控面板)

gc时间间隔设置:默认10分钟。

是否正常?有哪些排查问题的思路?非常感谢!

在排查中确定到:系统没有周期性的删除大量数据。

gc相关监控信息:

GC worker CPU 有段时间周期性的100%,时间和tikv结点周期一致;但是当GC worker CPU降下来的时候,tikv结点IO Util依然会周期性地达到80%左右。

集群里存在比较多的kv悲观锁,是否会导致在gc时,tikv io升高?


非常感谢!

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

1 个赞

能否在操作系统层面执行 iotop 命令,看下 io 高时对应的进程是什么,多谢。

1 个赞

非常感谢你提供的问题排查思路。
排查到如下现象:
发现kv结点io util升高时,进程 jbd2/vdb-8占用io高达60%
image

然后排查进程jbd2/vdb-8占用io高的问题,发现如下原因:
查到原因:jdb2进程占用IO资源较高,jdb2进程是文件系统ext4的写日志进程,占用高是内核一个bug

我们服务器的文件系统是ext4,服务器内核都是:3.10.0-693.2.2.el7.x86_64

查到针对以上问题解决方法:
方法一:升级内核
$ sudo yum update kernel
方法二:通过修改文件系统的提交次数来降低
commit=60

您好!现在还有问题:
根据这些现象,能否确定就是服务器内核的问题?如果是,采用升级内核的方法解决这个问题,您有什么建议或者趟过的坑?

非常感谢!。

1 个赞

感觉大概率是内核的问题,可以试试先调整参数,如果能够缓解了,那应该就是这个问题,再升级内核。

1 个赞

您好,麻烦再请教一个问题:
方法一:升级内核,3台kv都需要重启机器,影响较大。

    如果在集群负载最低的时候,一台一台升级内核,重启机器,不考虑kv结点上的region leader,会有一定的概率导致应用端报错,查询或操作数据失败!

    如果先把某一天上的所有region leader强制迁移走,再升级内核,重启机器,担心重启的结点,tikv进程起不来或者出现无法再连接点集群当中或者无法同步集群其他结点的数据等问题。

    总体该方案影响较大。

方法二:修改文件系统的提交次数(commit参数)。

    由于磁盘一致有进程在用,如果需要修改commit参数,需要重新挂载磁盘,那就需要停所有向该磁盘有写请求的进程。这无疑和重启机器差不多。

这两天又查到:
方法三: 禁用EXT4文件系统日志功能。

    操作上来说最简单,一行命令就可以了:tune2fs -O ^has_journal /dev/sdb。如果ext4的日志关闭之后,kv节点io问题没有缓解,可以方便的再把日志打开。

    顾虑:EXT4文件系统日志功能是ext4增强磁盘稳定性的一种手段,如果我把日志功能关闭,是否会导致磁盘上的数据就不稳定、不可靠了呢?

请问有什么建议?如果无法避免要升级内核,有没有建议升级到哪个版本最好?非常感谢!

1 个赞

可以和你们的业务人员沟通,具体版本可以咨询下你们的操作系统管理员,多谢。

1 个赞

升级内核,问题依然存在!正在探索其他解决方法… …

1 个赞

还是jdb2的进程高吗?

1 个赞

是的,高的时候jbd2/vdb-8进程能占io 60%。(使用iotop查看)

1 个赞

可以找个测试环境试试哪个版本的内核可以比较此问题,或者降低commit,参考下其他网上的处理方法
https://blog.51cto.com/xujpxm/1674378

1 个赞