Gauge测试在Jenkins节点执行后强制终止Runner耗时过长排查求助
排查Gauge Runner强制终止耗时过长的方向
检查目标进程状态与资源占用
当出现Killing runner with PID:XXXX forcefully提示时,在慢节点上执行ps aux | grep XXXX查看该进程的CPU、内存占用,再用ps -l | grep XXXX看进程状态:- 如果状态是
D(不可中断睡眠),说明进程在等待IO操作完成(比如报告写入、临时文件清理),大概率是存储IO性能不足(比如云VM用了低速网络存储)。 - 同时用
top -p XXXX实时监控,看是否有持续的IO等待。
- 如果状态是
核对Gauge版本与系统环境差异
- 分别在两个节点执行
/usr/local/bin/gauge --version,确认版本是否一致。部分旧版本Gauge的runner在终止时存在资源清理逻辑的bug,导致退出缓慢。 - 对比两个节点的OS内核版本(
uname -r)、系统发行版,不同内核对信号处理(如SIGTERM/SIGKILL)的响应机制可能存在差异。
- 分别在两个节点执行
排查进程依赖与子进程残留
执行pstree -p XXXX查看runner进程的子进程树,确认是否有未正常退出的子进程(比如测试依赖的浏览器、服务进程)。如果子进程卡住,runner无法正常退出,强制终止时需要等待子进程被回收,导致耗时变长。检查Jenkins节点的存储与权限配置
- 对比两个节点的报告目录
/mydirectory/html-report的存储类型:本地VM可能用本地磁盘,云VM如果用NFS/云存储,IO延迟会更高,导致runner在收尾写入报告时卡住,进而触发强制终止且耗时久。 - 确认Jenkins agent运行用户对该目录的读写权限,权限不足可能导致文件写入阻塞,拖慢进程退出。
- 对比两个节点的报告目录
查看系统日志定位异常
检查慢节点的系统日志(如/var/log/syslog、dmesg),搜索目标PID的相关日志,是否存在IO错误、资源耗尽、进程崩溃的提示,这些信息能直接定位强制终止缓慢的根因。
内容的提问来源于stack exchange,提问作者jaafar Nasrallah
相关产品推荐
相关产品推荐

