tikv节点发生重启故障

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

  • 【TiDB 版本】:v4.0.0
  • 【问题描述】:
    {‘tidb_log_dir’: ‘{{ deploy_dir }}/log’, ‘dummy’: None, ‘tidb_port’: 4000, ‘tidb_status_port’: 10080, ‘tidb_cert_dir’: ‘{{ deploy_dir }}/conf/ssl’}
系统信息
+--------------+-----------------------------+
|     Host     |           Release           |
+--------------+-----------------------------+
|   tidb-mon   | 3.10.0-1062.12.1.el7.x86_64 |
|   tidb-kv1   | 3.10.0-1062.12.1.el7.x86_64 |
|   tidb-kv2   | 3.10.0-1062.12.1.el7.x86_64 |
|   tidb-kv3   | 3.10.0-1062.12.1.el7.x86_64 |
| tidb-pd1-db1 | 3.10.0-1062.12.1.el7.x86_64 |
| tidb-pd2-db2 | 3.10.0-1062.12.1.el7.x86_64 |
|   tidb-pd3   | 3.10.0-1062.12.1.el7.x86_64 |
|  tidb-pump1  | 3.10.0-1062.12.1.el7.x86_64 |
+--------------+-----------------------------+
TiDB 集群信息
+--------------------+--------------+------+----+------+
|    TiDB_version    | Clu_replicas | TiDB | PD | TiKV |
+--------------------+--------------+------+----+------+
| 5.7.25-TiDB-v4.0.0 |      3       |  2   | 3  |  3   |
+--------------------+--------------+------+----+------+
集群节点信息
+------------+-------------+
|  Node_IP   | Server_info |
+------------+-------------+
| instance_0 |     tikv    |
| instance_1 |     tikv    |
| instance_2 |     tikv    |
| instance_3 |   tidb+pd   |
| instance_4 |   tidb+pd   |
| instance_5 |      pd     |
+------------+-------------+
容量 & region 数量
+---------------------+-----------------+--------------+
| Storage_capacity_GB | Storage_uesd_GB | Region_count |
+---------------------+-----------------+--------------+
|       4535.30       |     1622.53     |    109878    |
+---------------------+-----------------+--------------+
QPS
+---------+----------------+-----------------+
| Clu_QPS | Duration_99_MS | Duration_999_MS |
+---------+----------------+-----------------+
| 3855.98 |     753.16     |     1012.31     |
+---------+----------------+-----------------+
热点 region 信息
+--------------+----------+-----------+
|    Store     | Hot_read | Hot_write |
+--------------+----------+-----------+
| store-393357 |    0     |     0     |
|   store-1    |    3     |     21    |
|   store-5    |    0     |     23    |
|   store-4    |    0     |     15    |
+--------------+----------+-----------+
磁盘延迟信息
+--------+------------+-------------+--------------+
| Device |  Instance  | Read_lat_MS | Write_lat_MS |
+--------+------------+-------------+--------------+
|  dm-0  | instance_0 |     nan     |     0.00     |
|  dm-0  | instance_1 |     nan     |     nan      |
|  dm-0  | instance_2 |     nan     |     0.00     |
|  dm-0  | instance_3 |     nan     |     nan      |
|  dm-0  | instance_4 |     nan     |     0.00     |
|  dm-0  | instance_5 |     nan     |     0.00     |
|  dm-1  | instance_0 |     nan     |     nan      |
|  dm-1  | instance_1 |     nan     |     nan      |
|  dm-1  | instance_2 |     nan     |     nan      |
|  dm-1  | instance_3 |     nan     |     nan      |
|  dm-1  | instance_4 |     nan     |     nan      |
|  dm-1  | instance_5 |     nan     |     nan      |
|  sda   | instance_0 |     nan     |     0.00     |
|  sda   | instance_1 |     nan     |     nan      |
|  sda   | instance_2 |     nan     |     0.00     |
|  sda   | instance_3 |     nan     |     nan      |
|  sda   | instance_4 |     nan     |     0.00     |
|  sda   | instance_5 |     nan     |     0.00     |
|  sdb   | instance_0 |     0.46    |     0.13     |
|  sdb   | instance_1 |     0.37    |     0.15     |
|  sdb   | instance_2 |     0.33    |     0.12     |
|  sdb   | instance_3 |     nan     |     0.22     |
|  sdb   | instance_4 |     nan     |     0.19     |
|  sdb   | instance_5 |     nan     |     0.21     |
|  sr0   | instance_0 |     nan     |     nan      |
|  sr0   | instance_1 |     nan     |     nan      |
|  sr0   | instance_2 |     nan     |     nan      |
|  sr0   | instance_3 |     nan     |     nan      |
|  sr0   | instance_4 |     nan     |     nan      |
|  sr0   | instance_5 |     nan     |     nan      |
+--------+------------+-------------+--------------+

下午16:30分,tidb-kv2节点重启,附件是截取16:30分前后的tikv.log,tikv_stderr.log没有日志输出tikv.log (1.2 MB)

最近在6月30号,另外一个节点也发生重启了,不知道是什么原因

  1. 麻烦到重启的机器执行一下 dmesg|grep -i kill 以及到 tikv 的监控看看重启时间段的 TiKV 的内存使用情况

kv节点都是16核32G,监控看内存使用还行,没有用完

dmesg|grep -i kill信息如下:

  1. 看起来是改 tikv instance 被 oom killer kill 掉了。与重启的 tikv instance 同一台机器上面还有其他的应用在运行吗?
  2. 可以通过 node_exporter 的监控确认一下 重启时间段内,机器的内存使用情况。以及 /var/log/message 确认一下 oom 的时候各个进程的内存使用情况。

1、发生重启的机器就只部署了一个tikv节点,没有其它应用
2、昨天重启时间是16:30,截图是16:00 ~ 17:00的node_exporter监控

截取了/var/log/message日志,确实是oom了,但是监控感觉不太准messages (22.1 KB)

还请分析一下

刚看了下6月30号,另外一个tikv节点,发现/var/log/message中的日志和这次的这个节点一样,也是oom了

顺便提一下,除了正常的业务访问和DM同步外,每天在16:30分集群备份,使用的是mydumper,不知道这个是不是影响因素

可以看下 over-view 的监控吗? 那里的内存展示如何?

在 tidb-server 上执行 dmesg -T | grep -i oom 看下,从 dashboard 看 tidb-server 启动时间也是比较新的。

在 tidb log 中 grep “expensive_query” 可以通过附件形式提供下返回的信息。问下集群节点重启是否是周期性的呢?

这是昨天16:30分重启前后的overview

1、tidb-server重启是7月15号,tiflash的bug引起的,然后把tiflash节点下线后,重启恢复了。bug已通过其他同事微信上反馈过了,待后续版本修复

2、tidb log中搜索 “expensive_query”,发现在重启时间点,有一个tidb节点有出现,语句内容是select * from xxx,是库备份。这张表有200多列,记录数3.3亿,难道跟备份这张表有关?

3、集群重启目前几次都是故障引起的,不是周期性的

这部分的日志,文本格式可否发出来看下。

tidb.log.err.tar.gz (552.6 KB)

感谢反馈,可否将 16:32 左右的 tidb log 也反馈下,区间就是包含 welcome 字样的日志,上下文 100 行即可
这边看在 30分 开始备份时,集群 duration 和 集群负载还是很高的。select * from tbl 的语句也有执行,在上面 log 中有 1.2 GB 和 7.66GB 的 sql 执行过。

16:32 tidb server没有重启,是tikv重启了,是要tikv 16:32左右的,并且包含Welcome字样的日志吗?

sorry,似的。对应的也发一下 tidb log 看下是有也有 expensive query

tikv.log.tar.gz (3.9 MB)

基本是由于 sql 的原因导致 tikv 内存上涨,被系统 oom,
监控图中在 mydumper 开始备份时,内存分配也是猛涨,紧接着 tikv 在此时间点就已经完成重启了。[2020/07/23 16:30:41.416 +08:00] [INFO] [lib.rs:93] ["Welcome to TiKV"]

看下 tikv welcome 上下文,也是一直都有慢语句在进行

可以看下tidb log 中 [2020/07/23 16:30:41.416 +08:00] 时间点是否有 expensive query 存在。
在执行下cat /proc/sys/vm/min_free_kbytes

tidb log中存在expensive query,详见 上面回帖中的附件日志:tidb.log.err.tar.gz,两个tidb server节点,只有一台有expensive query这个语句

min_free_kbytes值:67584,所有机器都一样的

这种情况下,有哪些办法可以避免oom,一个月两个节点重启,这个有点太频繁了

先看下你的 mydumper 语句,主要关注并发相关的配置项情况,辛苦说明下 mydumper 的执行频率。

https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#oom-action