混布的场景下 tiflash 启动失败, 处于offline 状态无法启动

【 TiDB 使用环境】Poc
【 TiDB 版本】6.5.3
【复现路径】早上出现部分tiflash的表无法被查询, 提示9012 time out的问题.
中午将三个tiflash的节点执行了scale in 的操作
换用了一个新nvme和新的端口重新部署三个节点的tiflash 节点.
但是发现Tiflash服务器一直处于 offline的状态
服务不停地在重启.
我们这边有几个分区表, 表的分区数量还比较多.
【遇到的问题:问题现象及影响】tiflash无法启动
【资源配置】四台服务器, 都是 鲲鹏 96核心 512G内存 nvme SSD.
【附件:截图/日志/监控】

tiflash.log 部分报错信息为:

配置信息为:
default_profile = “default”
display_name = “TiFlash”
http_port = 8124
listen_host = “0.0.0.0”
path = “/nvme02/tiflash/data/tiflash-9001”
tcp_port = 9002
tmp_path = “/nvme02/tiflash/data/tiflash-9001/tmp”

[flash]
service_addr = “192.168.255.119:3931”
tidb_status_addr = “192.168.255.119:10080,192.168.255.121:10080,192.168.255.120:10080,192.168.255.120:10081”
[flash.flash_cluster]
cluster_manager_path = “/deploy/tidb/tiflash-9002/bin/tiflash/flash_cluster_manager”
log = “/deploy/tidb/tiflash-9002/log/tiflash_cluster_manager.log”
master_ttl = 600
refresh_interval = 200
update_rule_interval = 50
[flash.proxy]
config = “/deploy/tidb/tiflash-9002/conf/tiflash-learner.toml”

[logger]
count = 20
errorlog = “/deploy/tidb/tiflash-9002/log/tiflash_error.log”
level = “debug”
log = “/deploy/tidb/tiflash-9002/log/tiflash.log”
size = “1000M”

[profiles]
[profiles.default]
max_memory_usage = 0

[raft]
pd_addr = “192.168.255.119:2379,192.168.255.121:2379”

[status]
metrics_port = 8235

集群信息:


tiflash.tar.gz (25.4 MB)

[root@clickhouse1 log]# systemctl status tiflash-9002
● tiflash-9002.service - tiflash service
Loaded: loaded (/etc/systemd/system/tiflash-9002.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2023-09-18 15:35:21 CST; 7s ago
Main PID: 592125 (TiFlashMain)
Tasks: 1264
Memory: 1.2G
CGroup: /system.slice/tiflash-9002.service
└─592125 bin/tiflash/tiflash server --config-file conf/tiflash.toml

9月 18 15:35:21 clickhouse1 systemd[1]: Started tiflash service.
9月 18 15:35:21 clickhouse1 bash[592125]: sync …
9月 18 15:35:21 clickhouse1 bash[592125]: real 0m0.013s
9月 18 15:35:21 clickhouse1 bash[592125]: user 0m0.001s
9月 18 15:35:21 clickhouse1 bash[592125]: sys 0m0.000s
9月 18 15:35:21 clickhouse1 bash[592125]: ok
[root@clickhouse1 log]# systemctl status tiflash-9002
● tiflash-9002.service - tiflash service
Loaded: loaded (/etc/systemd/system/tiflash-9002.service; enabled; vendor preset: disabled)
Active: activating (auto-restart) (Result: exit-code) since Mon 2023-09-18 15:35:28 CST; 170ms ago
Process: 592125 ExecStart=/bin/bash -c /deploy/tidb/tiflash-9002/scripts/run_tiflash.sh (code=exited, status=1/FAILURE)
Main PID: 592125 (code=exited, status=1/FAILURE)

服务运行七秒左右就会自动退出.

都缩容了,缩容tiflash前 有没有把tiflash表副本取消?
统变量 tidb_allow_fallback_to_tikv,用于决定在 TiFlash 查询失败时,自动将查询回退到 TiKV 尝试执行,默认为 OFF。可先临时调整让应用不报错了

scale-in时 offline状态是正常的,在等region迁移完,可以pd-ctl store XXX 或information_schema.tikv_store_status 看看region_count是否在减少?缩容可参考:

tiflash的log有error日志吗 重启前的,贴出来的warn info级别的应该没啥影响

1 个赞

6.5可以整个库取消tiflash副本,直接先把所有的tiflash副本全部取消,ALTER DATABASE aaa SET TIFLASH REPLICA 0,再缩容tiflash后扩容

tidb 的tiflash 需要取消重建

还是不可以…

就是取消重建的啊…

scale in 已经成功了 但是scale out 的tiflash节点无效. 一直启动不起来.

系统疯狂的在刷新tikv里面数据库的表信息, 刷新到一定程度 就exited 然后没反应了.

SELECT * FROM INFORMATION_SCHEMA.TIFLASH_REPLICA a WHERE a.TABLE_NAME=‘’;—2022那个表
这里面显示啥

已经全部清理了. 现在都是 0 的 新增加的tiflash 启动不起来.

你这tiflash没设置副本,但是部署tiflash没报错也启动不起来。。。。理论上你tiflash replica都设置成0了,它刷什么日志啊。。。不应该先起来服务吗?你集群是从低版本升上来的吗?

不是, 我感觉我遇到了bug metadata 到282MB 后就会 失败.
我已经尝试多种方式了, 每次都是到 282M 失败. 希望各位大佬能给出一个解决方案呢.

[root@clickhouse1 tiflash-9003]# du -ahd 1
4.0K ./format_schemas
36G ./flash
4.0K ./status
36K ./page
4.0K ./flags
4.0K ./user_files
282M ./metadata
4.0K ./tmp
8.0K ./data
36G .
[root@clickhouse1 tiflash-9003]# systemctl status tiflash-9003
● tiflash-9003.service - tiflash service
Loaded: loaded (/etc/systemd/system/tiflash-9003.service; enabled; vendor preset: disabled)
Active: activating (auto-restart) (Result: exit-code) since Mon 2023-09-18 18:03:19 CST; 9s ago
Process: 888878 ExecStart=/bin/bash -c /deploy/tidb/tiflash-9003/scripts/run_tiflash.sh (code=exited, status=1/FAILURE)
Main PID: 888878 (code=exited, status=1/FAILURE)
[root@clickhouse1 tiflash-9003]#

dashboard看看日志吧,有什么error日志吗

有个类似的问题可以看一下:TiFlash节点不断重启

也参考下这个问题!

麻烦在 tiflash 的部署机器上跑这个命令,看看你的 cpu 是否支持 avx2 指令

cat /proc/cpuinfo | grep avx2

把输出的文本结果贴一下

看了你发的日志,只看到一个Address already in use的报错,是端口被占用了?

❯ grep -Ev "INFO|DEBUG|ection for new style" tiflash.log
[2023/09/18 14:51:07.222 +08:00] [ERROR] [<unknown>] ["Net Exception: Address already in use: 0.0.0.0:8124"] [source=Application] [thread_id=1]

你混部的场景是把TiFlash和谁混部了啊,看下是不是端口冲突了。找了下TiFlash的端口还是挺多的。。

tiflash_servers:
  - host: 10.0.1.11
    # ssh_port: 22
    # tcp_port: 9000
    # flash_service_port: 3930
    # flash_proxy_port: 20170
    # flash_proxy_status_port: 20292
    # metrics_port: 8234
    # deploy_dir: /tidb-deploy/tiflash-9000
    ## The `data_dir` will be overwritten if you define `storage.main.dir` configurations in the `config` section.
    # data_dir: /tidb-data/tiflash-9000
    # numa_node: "0,1"

是几个节点的http_port都写成8124了?