And*_*ams 3 linux batch scheduling batch-processing
在业务中的另一个流程完成后,我们目前正在设置服务器以进行一些繁重的工作 (ETL),目前我们正在通过计划的 cron 作业或远程执行(通过 ssh)来启动作业。本周早些时候,我们遇到了系统上并行运行的作业过多的问题,这导致所有作业在争夺 CPU 时间时都以蜗牛般的速度运行。
我一直在寻找一个批处理调度程序,一个我们可以将作业插入运行队列的系统,系统将一个一个地处理它们。任何人都可以就一个程序/系统提出建议吗?由于该项目的鞋带性质,低成本 / FOSS 将受到赞赏。
我会设置某种排队服务。一个关于“准备使用”的快速谷歌显示了这一点:
根据您的需要,您可以简单地
实际上还有更多内容,您可能需要实现优先级队列,这会带来诸如饥饿作业或类似问题之类的问题,但让某些东西快速启动并运行并没有那么糟糕。
如果 LDP 按照womble 的建议,我会接受。拥有这样一个由更大社区维护的系统当然比为其他人已经解决的问题创建自己的错误更好:)
排队服务还具有将资源与实际数字运算分离的优势。通过在某些网络连接上提供作业,您可以简单地将硬件放在(可能的)扩展问题上,并获得几乎无限的可扩展性。
您的问题的一个重量级解决方案是使用类似Sun Grid Engine的东西。
Sun Grid Engine (SGE)。SGE 是一个分布式资源管理软件,它可以有效地利用集群/机器内的资源(cpu 时间、软件、许可证等)。
这是一个关于如何使用 SGE 的小教程。
归档时间: |
|
查看次数: |
5984 次 |
最近记录: |