TIDB-SERVER 内存持续上升

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
tidb-server,tikv-server, pd 部署在40C 251G 内存的三台机器

【概述】 场景 + 问题概述
TIDB-SERVER 使用nginx 做负载均衡。 每天批量的插入数据。 其中一个tidb-server 的内存会一直上升, 其他两台机器的内存占用则很少。 从nginx 日志查看, 三个tidb-server 都是有请求的。

【背景】 做过哪些操作
内存上升后,杀死tidb-server 来释放内存。
【现象】 业务和数据库现象

【问题】 当前遇到的问题

【业务影响】

【TiDB 版本】
v5.2.3

【应用软件及版本】

【附件】 相关日志及配置信息

  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息

监控(https://metricstool.pingcap.com/)

  • TiDB-Overview Grafana监控
  • TiDB Grafana 监控
  • TiKV Grafana 监控
  • PD Grafana 监控
  • 对应模块日志(包含问题前后 1 小时日志)

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

1 个赞
  1. 优先可以关注一下慢查询 (dashboard 就可以看到观察到了)
  2. 关注一下 tidb 的监控数据,具体是哪个节点 的内存占用多,是在什么时段会造成这个情况
  3. 如果有大量的慢查询,也会导致大量的内存占用,但是这个资源回收受 GC 的机制管理,不是及时回收的。你可以考虑设定每个 SQL,最大执行时间和最大占用内存量,来做限制
2 个赞

建议在Grafana中查看runtime面板中的监控,看一看具体内存使用情况

2 个赞

ng均衡规则是啥?请求均匀不?

1 个赞

关注 tidb 的监控情况

1 个赞

排查下是否有慢sql或者没执行完的expensive sql导致内存上升

2 个赞

现在还没有对外承接业务,所有当前是没有业务查询的,只会定时的将大数据的报表数据批量写入。通过runtime 查看内容的占用如下。

1 个赞

请求是均衡的, 采用的轮询的均衡规则。 这个是对nginx 的access.log 做的请求统计。
1714 10.138.87.9:4000
1711 10.138.87.8:4000
1709 10.138.87.10:4000

1 个赞

批量插入数据,是一个连接执行的吧,负载均衡一般是同一个Session的请求都是发给同一个服务器的。而且你这个批量插入数据是一个大事务,因此导致你的一个服务器的内存占用很大,其它两个就当吃瓜群众了。

一个服务器占用内存大了之后,你把杀掉了,那么后续连接请求就会连到另外一个TiDB Server,因此在你看来,每个Server貌似都有请求,且符合轮询的负载规则,但实际上在同一个时刻,各个服务器的请求并不是均衡的,如果可以的话,可以把这个大批量插入分成若干个小事务插入会更好。

在负载均衡上将内存持续上升的tidb-server 节点去掉, 观察一该tidb-server 的内存情况,tidb-server 内存还是在继续升高。
该tidb-server 的日志如下:

[2022/02/09 13:27:59.064 +08:00] [INFO] [coprocessor.go:812] ["[TIME_COP_PROCESS] resp_time:13.770061451s txnStartTS:431064858892697603 region_id:52161 store_addr:10.138.87.8:20160 kv_process_ms:12414 kv_wait_ms:1 kv_read_ms:0 processed_versions:84085 total_versions:86185 rocksdb_delete_skipped_count:1679 rocksdb_key_skipped_count:172986 rocksdb_cache_hit_count:65 rocksdb_read_count:1492 rocksdb_read_byte:30682540"]
[2022/02/09 13:28:11.740 +08:00] [INFO] [coprocessor.go:812] ["[TIME_COP_PROCESS] resp_time:12.673223515s txnStartTS:431064858892697603 region_id:52165 store_addr:10.138.87.8:20160 kv_process_ms:11351 kv_wait_ms:1 kv_read_ms:0 processed_versions:85571 total_versions:87476 rocksdb_delete_skipped_count:2904 rocksdb_key_skipped_count:176333 rocksdb_cache_hit_count:49 rocksdb_read_count:1523 rocksdb_read_byte:29148110"]
[2022/02/09 13:28:24.442 +08:00] [INFO] [coprocessor.go:812] ["[TIME_COP_PROCESS] resp_time:12.697767419s txnStartTS:431064858892697603 region_id:52169 store_addr:10.138.87.8:20160 kv_process_ms:11426 kv_wait_ms:2 kv_read_ms:0 processed_versions:84427 total_versions:86644 rocksdb_delete_skipped_count:3175 rocksdb_key_skipped_count:174673 rocksdb_cache_hit_count:84 rocksdb_read_count:1487 rocksdb_read_byte:30403904"]
[2022/02/09 13:28:37.094 +08:00] [INFO] [coprocessor.go:812] ["[TIME_COP_PROCESS] resp_time:12.647196405s txnStartTS:431064858892697603 region_id:52173 store_addr:10.138.87.8:20160 kv_process_ms:11316 kv_wait_ms:2 kv_read_ms:0 processed_versions:85176 total_versions:87559 rocksdb_delete_skipped_count:3050 rocksdb_key_skipped_count:176441 rocksdb_cache_hit_count:78 rocksdb_read_count:1492 rocksdb_read_byte:28199001"]
[2022/02/09 13:28:50.738 +08:00] [INFO] [coprocessor.go:812] ["[TIME_COP_PROCESS] resp_time:13.639987997s txnStartTS:431064858892697603 region_id:52177 store_addr:10.138.87.8:20160 kv_process_ms:12279 kv_wait_ms:1 kv_read_ms:0 processed_versions:90051 total_versions:93491 rocksdb_delete_skipped_count:2392 rocksdb_key_skipped_count:187998 rocksdb_cache_hit_count:113 rocksdb_read_count:1449 rocksdb_read_byte:29281382"]
[2022/02/09 13:29:04.806 +08:00] [INFO] [coprocessor.go:812] ["[TIME_COP_PROCESS] resp_time:14.064056572s txnStartTS:431064858892697603 region_id:52181 store_addr:10.138.87.10:20160 kv_process_ms:12296 kv_wait_ms:2 kv_read_ms:0 processed_versions:93106 total_versions:94627 rocksdb_delete_skipped_count:3337 rocksdb_key_skipped_count:192458 rocksdb_cache_hit_count:128 rocksdb_read_count:1448 rocksdb_read_byte:27025845"]
[2022/02/09 13:29:17.607 +08:00] [INFO] [coprocessor.go:812] ["[TIME_COP_PROCESS] resp_time:12.797043079s txnStartTS:431064858892697603 region_id:52185 store_addr:10.138.87.8:20160 kv_process_ms:11450 kv_wait_ms:1 kv_read_ms:0 processed_versions:85451 total_versions:87333 rocksdb_delete_skipped_count:1420 rocksdb_key_skipped_count:175124 rocksdb_cache_hit_count:57 rocksdb_read_count:1497 rocksdb_read_byte:29609374"]

该tidb-server 的慢日志打印的sql 如下:
SELECT version, table_id, modify_count, count from mysql.stats_meta where version > 431065435543961602 order by version
SELECT HIGH_PRIORITY (variable_value) FROM mysql.tidb WHERE variable_name=‘tikv_gc_leader_lease’ FOR UPDATE;

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。