开发者社区 问答 正文

在SchedulerX中,如果机器繁忙这边不会自动转移到健康的机器吗?

在SchedulerX中,如果机器繁忙这边不会自动转移到健康的机器吗?

展开
收起
LLLA 2024-01-23 23:05:46 53 分享 版权
阿里云 AI 助理回答

在SchedulerX中,当机器繁忙时,默认情况下不会自动将任务转移到健康的机器上执行。以下是详细说明和相关配置的解释:


1. 默认行为:不触发繁忙机器

SchedulerX默认不会向状态为“繁忙”的机器下发任务。
- 繁忙状态的判断依据: - CPU负载(load5):近5分钟的平均负载不能超过客户端机器的CPU可用核数。 - 内存使用率:近5分钟的平均内存使用率不能超过设定的阈值(默认90%)。 - 磁盘使用率:磁盘使用率不能超过设定的阈值(默认95%)。 - 如果所有机器都处于“繁忙”状态,则可能导致任务下发失败。


2. 强制触发繁忙机器的配置

如果需要在机器繁忙时仍然触发任务执行,可以通过以下方式修改配置: - 在应用管理页面,选择目标应用分组,单击编辑 > 实例繁忙配置。 - 将是否触发繁忙机器开关设置为关闭
注意:此操作会强制向繁忙机器下发任务,可能会对系统性能造成影响,请谨慎使用。


3. 容器(K8s)环境下的特殊配置

对于容器(K8s)部署的应用,如果发现CPU使用率采集不准确,可能会影响繁忙状态的判断。此时需要手动开启cgroup指标统计,并配置相关参数: - spring.schedulerx2.enableCgroupMetrics:设置为true以启用cgroup统计。 - spring.schedulerx2.cgroupPathPrefix:指定容器内cgroup的路径,默认为/sys/fs/cgroup/cpu/


4. 无可用机器的报警机制

为了避免因所有机器繁忙导致任务无法下发,建议配置无可用机器报警: - 在任务管理页面,启用无可用机器报警功能。 - 当检测到无健康机器可用时,系统会通过配置的通知渠道(如短信、邮件、Webhook等)发送告警信息。


5. 优化建议

  • 扩容:如果频繁出现机器繁忙的情况,可以考虑增加机器数量或调整任务的并发配置。
  • 流控配置:在高级配置中设置合理的任务实例并发数,避免单台机器负载过高。
  • 升级客户端:确保SchedulerX客户端版本为最新(建议1.7.9及以上),以优化任务调度性能。

总结

SchedulerX默认不会将任务分配到繁忙机器上,但可以通过修改配置强制触发。此外,建议结合报警机制和系统优化措施,确保任务调度的稳定性和高效性。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答