批处理作业调度的替代方法(在计算池中)

时间:2012-02-05 09:56:59

标签: load-balancing batch-processing job-scheduling

由于我对计算池中的计算机没有root权限,因此无法调整atd的load参数以进行批处理,我正在寻找另一种方法来进行作业调度。由于机器由多个用户使用,因此应该能够考虑负载。或者,我正在寻找一种方法来为池中的所有机器执行此操作,即。有一个中央队列包含需要运行的作业,以及一个脚本(通过ssh)在一定负载下的机器上分发它们。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

首先:与计算池的系统管理员交谈。如今,企业级作业调度程序已成为基础架构中相当常见的组件。通常,这些调度程序不会考虑系统负载。

如果以上方法没有找到一个好的解决方案,你应该仔细考虑你的工作会给机器带来什么样的负载:你的工作可能会给cpu带来更大的压力,消耗大量的内存,产生大量的网络或磁盘IO活动。因此,确定您的工作是否应该开始可能取决于大量的测量,其中一些您将无法像普通用户那样做(取决于您运行的操作系统的类型,以及安全性的严格程度)。在任何情况下:您只能考虑作业启动时的负载。显然,如果每个用户都这样做,那么你很快就会回到原点......

最好与系统管理员联系,了解他们是否有适当的资源控制(例如Solaris中的项目),通过这些资源控制,他们可以确保您的批次不会拆除计算池中的节点。接下来,编写批处理作业,使其能够应对操作系统拒绝资源请求。

编辑:至于分布式特性:排队作业并让所有节点上的客户端指向同一个队列,在资源控制的上下文中尽可能多地消耗...