li-wen故障排除:常见问题与解决方案的完整清单

li-wen故障排除:常见问题与解决方案的完整清单

【免费下载链接】li-wenTool for dynamic management of worker resources in OBS-Build system项目地址: https://gitcode.com/openeuler/li-wen

前往项目官网免费下载:https://ar.openeuler.org/ar/

li-wen是openEuler社区推出的OBS-Build系统worker资源动态管理工具,能够智能监控和调整构建节点资源,确保编译任务高效执行。本文汇总了使用过程中最常见的故障类型及对应的解决方案,帮助运维人员快速定位问题。

一、架构与工作流程概览

在排查故障前,先了解li-wen的核心架构有助于理解问题根源。系统通过obs-worker-monitor组件实时监控worker节点状态,并与Prometheus联动实现资源数据采集与告警。

li-wen的资源调度流程遵循严格的逻辑判断链,从任务负载分析到worker扩容/缩容决策,每个环节都可能成为故障点:

二、常见故障分类及解决方案

2.1 Worker节点异常(最常见)

症状表现

  • 监控面板显示worker状态为"abnormal"
  • 任务队列堆积且无worker节点接收新任务
  • 日志中出现"abnormal_workers: 异常状态worker,待释放"提示

排查步骤

  1. 检查worker基础网络连通性:ping <worker-ip>
  2. 查看节点资源使用情况:ssh <worker-ip> "top -b -n 1"
  3. 检查OBS代理服务状态:systemctl status obs-worker

解决方案

  • 资源耗尽型:执行main/wsdm.py的worker释放流程
  • 服务挂掉型:远程重启服务ssh <worker-ip> "systemctl restart obs-worker"
  • 网络异常型:检查libs/conf/ecs_servers.yaml中的网络配置

2.2 参数配置错误

症状表现

  • 执行命令时出现"invalid parameter! effective parameters as follows"错误
  • 日志中频繁出现"implement parameter check cmd failed!"提示
  • 动态扩缩容功能完全不触发

常见原因

  1. libs/api目录下的参数校验脚本缺失或损坏
  2. wsdm.ini中的核心参数配置超出合理范围
  3. 架构类型不匹配(如x86配置应用于ARM节点)

解决方案

  • 运行参数自检工具:python3 main/monitor/project.py --check-params
  • 恢复默认配置:cp wsdm.ini.bak wsdm.ini
  • 验证架构配置:确保libs/cloud/HWCloud/ecs_servers.py中的架构名称与实际环境匹配

2.3 云资源申请失败

症状表现

  • 扩容时日志出现"Exceeds maximum number of servers that can be created"
  • 新worker创建失败并提示"Unmatched architecture name"
  • 认证错误:"Get authorized token: Fail to get auth token"

解决方案

  1. 检查云服务配额:登录云平台控制台确认ECS实例数量限制
  2. 验证密钥配置:重新生成并更新libs/conf/aes_encode_backend_login中的认证信息
  3. 调整规格参数:在global_config.py中修改flavor_level为允许值(l1/l2/l3)

三、高级故障排查工具

3.1 日志分析

核心日志文件路径:

  • 系统运行日志:tail -f /var/log/li-wen/wsdm.log
  • 资源调度日志:cat /var/log/li-wen/resource_schedule.log | grep -i error
  • Worker状态日志:less /var/log/li-wen/worker_status.log

3.2 数据库检查

Build时间统计数据异常时,检查SQLite数据库:

sqlite3 main/monitor/buildtime_cache.db "SELECT * FROM build_history WHERE duration > 3600;"

四、预防措施与最佳实践

  1. 定期备份配置:每周执行tar -czf li-wen-conf-$(date +%F).tar.gz libs/conf/ wsdm.ini

  2. 监控关键指标:通过Prometheus配置以下告警规则:

    • Worker内存使用率 > 90%
    • 任务等待时间 > 30分钟
    • 连续3次资源申请失败
  3. 版本管理:使用git跟踪配置变更:git init && git add libs/conf/ && git commit -m "config backup"

通过以上方法,可有效解决90%以上的li-wen使用问题。如遇到复杂故障,建议先查阅项目文档doc/design.md,或在openEuler社区论坛寻求帮助。

【免费下载链接】li-wenTool for dynamic management of worker resources in OBS-Build system项目地址: https://gitcode.com/openeuler/li-wen

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考