You need to enable JavaScript to run this app. Jenkins能否基于节点CPU使用率向EC2构建执行器调度构建任务?
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins能否基于节点CPU使用率向EC2构建执行器调度构建任务?

Jenkins EC2执行器调度问题解决方案

固定Number of Executors配置优化方案

因为构建任务CPU资源消耗差异极大,直接给所有EC2节点配置统一的执行器数必然会出现资源浪费或者节点过载的问题,可先通过标签分组解决基础调度问题:

  • 对所有Jenkins作业按CPU消耗打标签:将CPU占用8核以上的作业打high-cpu标签,CPU占用1核及以下的作业打low-cpu标签
  • 对EC2执行器也同步打对应标签,专门承接高CPU消耗作业的EC2节点Number of Executors配置为2,专门承接低CPU消耗作业的节点配置为1516,混部节点配置为46,可大幅降低固定执行器数带来的调度冲突。

基于CPU利用率的动态调度实现方法

原生Jenkins EC2插件不支持基于实时节点资源利用率调度,可通过以下两种成熟方案实现需求:

方案1:轻量本地脚本 + 节点排除插件(改造成本最低)

  • 每台EC2执行器上部署1个每分钟运行的定时采集脚本,采集节点1分钟平均CPU利用率,当利用率超过70%时在节点固定路径下生成overload.lock标记文件,利用率回落至60%以下时自动删除该文件
  • 安装Jenkins Node Execution Excluder插件,配置规则:若节点存在overload.lock文件,则禁止新的构建任务调度到该节点,直到标记文件被删除
  • 该方案不需要调整现有EC2插件配置,阈值可灵活调整,适合快速落地。

方案2:结合CloudWatch监控的自定义调度(准确率更高)

  • 给Jenkins控制器配置EC2 CloudWatch指标只读权限,可拉取所有EC2执行器的最近5分钟平均CPU利用率数据
  • 使用Jenkins Scriptler插件托管自定义调度脚本,每次构建任务触发前,脚本自动过滤掉CPU利用率高于70%的EC2节点,仅将任务分配给剩余可用节点
  • 该方案不需要在执行器侧部署额外进程,调度逻辑可根据业务需求灵活扩展。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 10:42:03