You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWX迁移后无法清理作业历史:Killed报错(退出码137)求助

排查与解决AWX作业清理失败问题

一、排查退出码137(Killed)错误

退出码137的核心原因是进程被系统OOM Killer强制终止,通常由内存不足导致,可按以下步骤排查:

  1. 检查AWX Task Pod的资源限制与实际使用

    • 查看Task Pod的资源配置:
      kubectl describe pod <awx-task-pod-name> | grep -A 10 Resources
      
    • 实时监控Pod内存占用:
      kubectl top pod <awx-task-pod-name>
      

    如果内存使用接近或超过配置的limits.memory,说明资源不足导致OOM。

  2. 调整清理策略,减少单次处理数据量

    • 避免一次性清理所有历史记录,拆分时间范围分批执行,比如先清理15-10天前的记录:
      awx-manage cleanup_jobs --days 15
      awx-manage cleanup_jobs --days 10
      
    • 若支持(AWX 2.x版本通常支持),添加--batch-size参数限制单次处理的记录数:
      awx-manage cleanup_jobs --days 10 --batch-size 500
      
  3. 临时提升Task Pod内存配额
    修改AWX自定义资源(CR)的spec.task.resources部分,调高内存限制后重新部署:

    spec:
      task:
        resources:
          limits:
            memory: 8Gi  # 根据实际情况调整
          requests:
            memory: 4Gi
    

    应用修改后重新执行清理命令。

二、直接从PostgreSQL清理损坏/历史作业记录

若awx-manage工具无法正常工作,可直接操作数据库清理,操作前务必完整备份数据库:

  1. 进入PostgreSQL容器

    kubectl exec -it <awx-postgres-pod-name> -- psql -U awx awx
    
  2. 分步删除关联表记录(避免外键约束错误)
    AWX 2.5.0的作业相关表以main_为前缀,按以下顺序删除:

    • 删除作业事件记录:
      -- 分批删除,每次处理1000条,重复执行直至无记录
      DELETE FROM main_jobevent WHERE job_id IN (SELECT id FROM main_job WHERE created < NOW() - INTERVAL '10 days') LIMIT 1000;
      
    • 删除作业主机摘要:
      DELETE FROM main_jobhostsummary WHERE job_id IN (SELECT id FROM main_job WHERE created < NOW() - INTERVAL '10 days') LIMIT 1000;
      
    • 删除作业标准输出:
      DELETE FROM main_jobstdout WHERE job_id IN (SELECT id FROM main_job WHERE created < NOW() - INTERVAL '10 days') LIMIT 1000;
      
    • 删除作业通知记录:
      DELETE FROM main_jobnotification WHERE job_id IN (SELECT id FROM main_job WHERE created < NOW() - INTERVAL '10 days') LIMIT 1000;
      
    • 最后删除作业主记录:
      DELETE FROM main_job WHERE created < NOW() - INTERVAL '10 days' LIMIT 1000;
      
  3. 验证清理结果
    查询剩余的历史作业记录,确认清理生效:

    SELECT COUNT(*) FROM main_job WHERE created < NOW() - INTERVAL '10 days';
    

三、排查UI删除作业返回500错误

查看AWX Task Pod的日志,定位具体错误原因:

kubectl logs <awx-task-pod-name> -f

常见原因包括:

  • 迁移后数据库表结构不兼容(新旧AWX版本表字段差异)
  • 作业记录关联的子表数据缺失(如stdout记录丢失,导致删除时触发数据库错误)
  • 数据库权限或约束异常

根据日志中的具体错误信息,针对性修复数据或调整表结构。

内容的提问来源于stack exchange,提问作者rippie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 23:05:07