集群健康度通过多个维度的健康指标得出的参考性结论。是评判集群的运行状况、出现问题风险的重要风向标。相比监控指标,健康度指标的实时性偏低(每小时采集过去一小时的最大值),反映的问题更偏长期治理解决。
说明
一个类比:监控是体征检测仪,健康度是体检报告。
前提条件:
操作步骤
指标含义: 数据盘(ByteHouse 目录所在磁盘)的占用率。磁盘使用率过高会影响后续的数据导入。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
(0,60] | (60,80] | (80,95] | (95,100] |
优化建议:
select database, name, total_bytes from system.tables order by total_bytes desc limit 100
查看系统中较大的表,并通过控制台或 Drop xxx.xx on cluster xxx
的方式删除。警告
该指标为“危险”时,请先停止所有导入任务。
指标含义: 指操作系统的 inode 使用率。过高时会影响集群数据导入和查询。通常是由写入的 Part 太碎,不能及时 Merge 造成的。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
(0,60] | (60,80] | (80,90] | (90,100] |
优化建议:
参照文档 Part 过多中描述的方法进行处理。
指标含义: 无法联通节点 / 全部节点数。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
0% | (0,20] | (20,50] | (50,100] |
优化建议:
指标含义:
这个参数记录了系统 CPU 的平均使用率,它能够反映系统是否已经超出了 CPU 的处理能力限制,从而导致了性能问题
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
(0%,70%] | (70%,80%] | (80%,90%] | (90%,100%] |
优化建议:
SELECT * FROM system.query_log ORDER BY total_cpu_seconds DESC limit 20
,查看 CPU 耗费较大的大查询,通过 慢查询章节中的优化建议,进行 SQL 与 Schema 的优化。指标含义:
系统内存的平均使用率,它能够反映系统是否已经用尽可用内存,从而导致了性能问题。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
(0,50%] | (50%,75%] | (75%,90%] | (90,100%] |
优化建议:
指标含义:
系统磁盘的平均 IOPS,它能够反映磁盘资源是否成为了性能瓶颈。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
(0%,70%] | (70%,80%] | (80%,90%] | (90%,100%] |
优化建议:
SELECT * FROM system.query_log ORDER BY read_bytes DESC limit 20
,SELECT * FROM system.query_log ORDER BY written_bytes DESC limit 20
,查看读写耗费较大的大查询,通过 慢查询章节中的优化建议,进行 SQL 与 Schema 的优化。指标含义:
集群 *MergeTree 表的总数量。表数量越多,可能会导致 Zookeeper 压力大,导致数据同步问题。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
[0,500] | (500,1000] | (1000,5000] |
|
优化建议:
指标含义:
集群 HaKafka 表的总数量。表数量越多,可能会导致集群的资源均用于写入,无资源查询。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
[0,20] | (20,50] | (50,90] |
|
优化建议:
指标含义:
HaMergeTree 引擎的主备同步日志记录在系统表 ha_queue
中,这个指标标识了 ha_queue
中未处理日志最多的一张表的剩余日志数量,代表这张表的主备同步发生了一些问题,很可能只有一个节点数据完整,在承担查询工作,导致负载不均。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
[0,100] | (100,1000] | (1000,10000] |
|
处理步骤:
参考 主备延迟排查问题。
指标含义:
记录了无法启动的表的数量,这些表无法被读写。可能因为意外重启或硬件损坏所致。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
[0,1) | ≥1 |
处理步骤:
请联系 ByteHouse 支持人员处理。
指标含义:
这个参数记录了没有 Leader 副本的表的数量,没有 Leader 会导致这张表无法被写入。
通常为 ZooKeeper 的问题所致。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
[0,1) | ≥1 |
处理步骤:
指标含义:
记录了单节点的最大 Part 数量。Part 数过多会导致后台大量资源用于 Merge,查询变慢,更严重会导致 inode 用尽,无法再写入。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
[0,100000) | ≥ 100000 |
处理步骤:
指标含义:
展示了插入分布式表的后台文件数(back files),代表数据插入延迟。该指标过大会导致大量刚写入的数据无法被查询到。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
[0,100) | [100,200) | ≥ 200 |
处理步骤:
指标含义: 集群所有查询时延的 P95 分位(单位:秒),可基本反应集群查询的返回速度。数字越大,集群健康情况越差。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
(0,1] | (1,5] | (5,10] |
|
优化建议:
max_execution_time
等限制参数。指标含义: 集群所有查询的成功率,反映是否有大面积超时和 SQL 语法错误,越低表示健康情况越差。
评分阈值:
健康 | 及格 | 不及格 | 危险 |
---|---|---|---|
(99,100] | (95,99] | (90,95] | <95 |
优化建议: