集群网络链路闪断检查工具 v1.0

运行环境Linux · Bash Shell

基于内核日志检查集群网络链路闪断问题和发生时间点

cluster_netlink_check脚本使用手册

版本 1.0 发布人 张建 发布日期 2026年3月9日

适用环境:AI训练集群 / HPC集群 / 分布式存储

脚本语言:Bash

1. 工具简介

cluster_netlink_check.sh 用于在 AI/HPC/存储 集群环境中批量扫描节点,通过 SSH 读取节点 journalctl 内核日志,检测网卡 Link down / Link up 事件,用于快速定位:

  • 网卡链路抖动
  • 交换机端口问题
  • 线缆问题
  • 节点网络不稳定

脚本支持 并行 SSH 扫描,可快速分析上百甚至上千节点。

2. 功能特点

  • 批量扫描集群节点
  • 自动解析 journalctl -k 内核日志
  • 统计网卡 Link down / Link up 次数
  • 显示事件时间
  • 支持高并发 SSH
  • 实时进度条
  • 自动生成日志文件

3. 运行环境

要求:

  • Linux
  • Bash 4+
  • 节点支持 SSH 免密登录
  • 节点存在 journalctl
  • 控制节点安装:
ssh
awk
grep
timeout
xargs
date

4. 节点列表文件

默认读取:

nodelist

示例:

node001
node002
node003
node004

要求:

  • 每行一个 hostname
  • 需要 SSH 可访问

5. 使用方法

基本运行

./cluster_netlink_check.sh

默认:

扫描时间范围 : 1小时
并行SSH数量 : 50
节点列表文件 : nodelist
SSH超时 : 5秒

6. 参数说明

参数 说明
-t 检查时间范围
-p 并行 SSH 数量
-hostfile 节点列表文件
-w SSH 连接超时
-h 显示帮助

6.1 时间范围

支持单位:

单位 含义
m 分钟
h 小时
d 天

示例:

-t 30m
-t 2h
-t 3d

6.2 并发 SSH

-p 100

示例:

./cluster_netlink_check.sh -p 200

适用于大规模集群。

6.3 指定节点文件

-hostfile gpu_nodes

示例:

./cluster_netlink_check.sh -hostfile gpu_cluster.list

6.4 SSH 超时

-w 10

示例:

./cluster_netlink_check.sh -w 10

7. 示例

示例1:扫描最近1小时

./cluster_netlink_check.sh

示例2:扫描最近6小时

./cluster_netlink_check.sh -t 6h

示例3:扫描GPU节点

./cluster_netlink_check.sh -hostfile gpu_nodes

示例4:大型集群扫描

./cluster_netlink_check.sh -t 12h -p 200

8. 输出示例

实际输出示例:

字段说明:

字段 含义
HOST 节点名
NIC 网卡名称
DOWN Link down 次数
LINK_DOWN_TIME down 发生时间
UP Link up 次数
LINK_UP_TIME up 发生时间

9. 进度显示

运行过程中会显示实时进度:

Progress: 45% | 450/1000 | 32.5 node/s | ETA 00:18

含义:

字段 含义
45% 完成比例
450/1000 已扫描节点
node/s 扫描速度
ETA 预计剩余时间

10. 日志文件

日志保存在:

./cluster_netlink_check_log/

示例:

./cluster_netlink_check_log/netlink_20260311_143555.log

内容包括:

  • 扫描结果
  • SSH失败节点

11. SSH失败节点

如果部分节点无法连接,会显示:

SSH Failed Nodes:
node034
node087
node192

可能原因:

  • 节点关机
  • SSH异常
  • 网络不可达

12. 常见用途

1️⃣ 查找网络抖动节点

./cluster_netlink_check.sh -t 24h

2️⃣ 大规模集群健康检查

./cluster_netlink_check.sh -t 1h -p 200

13. 建议配置(大规模集群)

节点规模 推荐并发
<200 50
200–500 100
500–2000 200

14. 注意事项

1️⃣ 需要 SSH免密登录

ssh node001

必须无密码。

2️⃣ 节点必须有 journalctl

journalctl -k

3️⃣ 需要 root 或日志访问权限。

4️⃣ 大规模扫描时建议提高并发:

-p 200