darren
(Darren)
1
【TiDB 版本】
5.0.0
【问题描述】
从4.0.5升级到5.0.0后,有好几个tikv节点因为空间满了导致退出,查看空间占用,
{
"store": {
"id": 5289483,
"address": "192.168.99.18:20160",
"version": "5.0.0",
"status_address": "127.0.0.1:20180",
"git_hash": "2099c7b004b8b8cec635a64172e3f3076f2e0416",
"start_timestamp": 1618824441,
"deploy_path": "/home/tidb",
"last_heartbeat": 1618825487378942399,
"state_name": "Up"
},
"status": {
"capacity": "472.3GiB",
"available": "21.81GiB",
"used_size": "145.7GiB",
"leader_count": 29,
"leader_weight": 1,
"leader_score": 29,
"leader_size": 1373,
"region_count": 11365,
"region_weight": 1,
"region_score": 1073719494.609375,
"region_size": 567600,
"sending_snap_count": 1,
"start_ts": "2021-04-19T17:27:21+08:00",
"last_heartbeat_ts": "2021-04-19T17:44:47.378942399+08:00",
"uptime": "17m26.378942399s"
}
}
从节点信息看,“used_size”: “145.7GiB”,
但是
$ du -sch /home/tidb/tidb-kv/
432G /home/tidb/tidb-kv/
145.7GB vs 432G 差的有点多,是因为空间没有回收吗?
根据这里的提示https://github.com/tikv/tikv/issues/3188
似乎tikv重启应该会触发compaction?
因为这个节点因为空间满导致进程退出几次,所以重启了好几次了,但是没有看到空间有回收的迹象。
darren
(Darren)
2
尝试执行: tikv-ctl --host 192.168.99.18:20160 compact -d kv, 执行过程中空间又满了,导致失败
停止进程后执行 tikv-ctl --db /home/tidb/tidb-kv/db compact -d kv 执行成功了
du的输出:
du -sch /home/tidb/tidb-kv/
314G /home/tidb/tidb-kv/
还是有100G的差异。
可能相关:https://github.com/tikv/tikv/issues/10027
看下是不是都是 data 数据占用的空间
还是说有 log 日志占用的空间
darren
(Darren)
4
都是sst文件占的空间,手动compact后运行了几个小时空间又要差不多满了:
$ du -sch /home/tidb/tidb-kv/*/*.sst
337G
"status": {
"capacity": "472.3GiB",
"available": "74.05GiB",
"used_size": "92.6GiB",
"leader_count": 267,
"leader_weight": 1,
"leader_score": 267,
"leader_size": 12971,
"region_count": 8280,
"region_weight": 1,
"region_score": 1073666000.3632812,
"region_size": 402480,
"start_ts": "2021-04-19T20:08:47+08:00",
"last_heartbeat_ts": "2021-04-19T22:07:13.436397954+08:00",
"uptime": "1h58m26.436397954s"
}
实际sst文件占了337G,但是 “used_size”: “92.6GiB”, 差的更多了。。
https://metricstool.pingcap.com/
导出一下最近 3 个小时的 Overview/PD/TiKV-Details 监控面板的信息我们看下。
导出监控步骤:
- 打开监控面板,选择监控时间
- 打开 Grafana 监控面板(先按
d
再按 E
可将所有 Rows 的 Panels 打开,需等待一段时间待页面加载完成)
-
https://metricstool.pingcap.com/ 使用工具导出 Grafana 数据为快照
darren
(Darren)
6
尝试把节点删了,重新在同一台机器上重建节点,运行了一天之后空间又告急了
{
"store": {
"id": 20979569,
"address": "192.168.99.18:20160",
"version": "5.0.0",
"status_address": "192.168.99.18:20180",
"git_hash": "2099c7b004b8b8cec635a64172e3f3076f2e0416",
"start_timestamp": 1619059574,
"deploy_path": "/home/tidb",
"last_heartbeat": 1619063587113042032,
"state_name": "Up"
},
"status": {
"capacity": "472.3GiB",
"available": "99.05GiB",
"used_size": "85.95GiB",
"leader_count": 144,
"leader_weight": 1,
"leader_score": 144,
"leader_size": 7941,
"region_count": 9325,
"region_weight": 1,
"region_score": 1021623019.5210453,
"region_size": 483030,
"start_ts": "2021-04-22T10:46:14+08:00",
"last_heartbeat_ts": "2021-04-22T11:53:07.113042032+08:00",
"uptime": "1h6m53.113042032s"
}
}
数据目录的大小:
323G db
12K import
20K last_tikv.toml
0 LOCK
171M raft
2.4M raftdb.info
3.7M raftdb.info.2021-04-21-22:46:56.920846648
27M rocksdb.info
23M rocksdb.info.2021-04-21-22:46:56.949351855
4.0K snap
24G space_placeholder_file
347G total
TiKV-Details_2021-04-22T03_42_20.358Z.json.zip (25.4 KB)
darren
(Darren)
7
我们复查了一下,发现这个节点是运行在VMwareESX/ESXi上的虚拟机,数据磁盘用了VMwareESX/ESXi 精简置备(thin), 怀疑是不是跟这个有关?
其他正常节点使用的磁盘不是这个么?
是否可以更换下磁盘确认一下?
导出的监控中没有数据,应该是没有等待数据加载完成就导出了。
darren
(Darren)
9