【TiDB 使用环境】生产环境
【TiDB 版本】v8.1.2 --ARM版本 麒麟v10 sp2
【机器部署详情】
架构: aarch64
CPU 运行模式64-bit
字节序:Little Endian
CPU: 96
1.5T内存
【问题】
执行tiflash查询就报错,tiflash节点就重启,报错如下,看看给为大佬遇到过吗.
尝试调增过tiflash的内存占用,也扩容节点了,还是不行。
感觉是版本的问题,升级一下?
结合ARM 版本、EOF 报错、TiFlash 重启这三个特征,大概率是服务器 CPU 不支持 asimd或 crc32指令集。TiDB v8.x 对 ARM 的指令集要求比早期版本更严格,建议优先在 服务器上执行 grep 'crc32' /proc/cpuinfo | grep 'asimd'进行验证
ARM 架构下存在内存管理缺陷、gRPC 通信异常的bug。
另外做好资源隔离。
早高峰流量上来就延迟,可以加大CDC并发、扩容节点,调大排序内存,同步优化下游写入速度。
v8.1.2 ARM 兼容性差,升级至 v8.4 + 稳定版本,修复 ARM 算子内存崩溃 bug;
看返回是支持
早高峰CDC延迟可以扩容节点、调大排序内存,同时优化下游写入吞吐缓解拥堵。
统计信息准确度决定优化器选择质量。
升级一下版本试试
是这个版本有bug吗?实在是搞不懂
AI 分析:
社区帖子 1056938 结论
根因:tiflash#10163(JoinPartition.cpp Arena::alloc 不保证对齐 → aarch64 上 std::mutex 触发 SIGBUS → TiFlash 进程崩溃)。x86 不崩(硬件容忍非对齐),aarch64 必崩。Bug 2023-11 引入,2025-05-19 修复(PR #10175),v8.1.2(2024-12 发布)带 bug、不带修复。
给客户的话术(5 分钟生效):
server_configs: tiflash: profiles: default: join_probe_cache_columns_threshold: 0
tiup edit-config → tiup cluster reload -R tiflash → 观察 30 分钟。
长期方案:升级 v8.5.x LTS(含修复)。
排除了什么:OOM(加内存无效)、Druid(症状放大器)、网络(本地查询即触发)、数据损坏(4 节点全崩)。
TiFlash执行查询崩溃可能是内存超限或者版本bug。检查tiflash的profiles.default.max_memory_usage配置,升级到最新补丁。
TiFlash查询时崩溃通常是内存超限触发了OOM killer。从profiles.default.max_memory_usage和查询并发数入手排查。
TiFlash EOF 后进程重启,ARM+麒麟环境要重点看 TiFlash 日志(tiflash/error.log)是否有 OOM、Rocks/DT 引擎 panic 或 coprocessor 异常。排查:1)确认 tiflash 与 tidb/tikv 版本严格一致;2)看是否特定 SQL/大聚合导致,用 EXPLAIN 看是否全走 tiflash;3)检查 max_memory 等参数和系统 ulimit;4)ARM 上关注是否有已知 bug,可试小查询隔离。仅扩内存不够时,建议贴 TiFlash 崩溃前后日志和复现 SQL 到 issue。
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。




