
目前业务上存在大量的 crontab 每分钟任务执行,现在是单个 pod 里面跑了很多个同类型任务的容器,最多的是 10 个任务在同一个 pod 里面,任务一跑起来,CPU 就告警了,已经做了资源限制,但还是撑不住 10 个一起跑起来。
当前想到的办法是,一个任务一个 pod,这样拆分出来,大概会有一百多个 pod,感觉资源也是占用比较多的。还有一个钟方法就是一个 pod 容器里面跑多条任务,顺序执行,如果这样,其中一个任务有问题就全挂了。
想请教下大佬们,还有什么更好的解决办法吗
1 laminux29 2 小时 13 分钟前 任务一跑起来,CPU 就告警了 =========================== 为什么任务跑起来 CPU 就要告警? CPU 运行负载时,CPU 使用率有增长,这难道不是正常现象? |
2 julyclyde 1 小时 55 分钟前 感觉是监控报警条件的设置有问题 你明知它会是锯齿状,但仍然选择了对尖峰情况进行报警 几个建议: 1 不要在整分钟启动任务,而是选择把多个任务加随机秒数延迟再开始运行 2 不要对尖峰情况进行报警,试试改为(超高+持续) 3 把定时任务单独搞一组机器运行,不要和日常负载混在一起 |
3 yinmin 1 小时 42 分钟前 via iPhone #2 正解。 crontab 配置任务时,每分钟任务分别错峰设置为 0 秒启动、第 10 秒启动、第 20 秒启动… 对于其他的按小时、按天启动的任务,设一个随机分钟和秒数启动。例如:每天凌晨 1:00 运行的任务改成 1:06:29 启动运行。 |
4 QHKZ 1 小时 33 分钟前 via iPhone 任务多了就上队列,成熟的框架策略比 cron 多的多。 |
6 RadishWind 1 小时 29 分钟前 这种其实已经超出了 cron 的适用范围了, 可以考虑上分布式的定时任务调度 |