由于我在计算池中的机器上没有 root 权限,因此无法将 atd 的负载参数调整为批处理,我正在寻找一种替代方法来进行作业调度。由于机器由多个用户使用,它应该能够考虑负载。可选地,我正在寻找一种方法来为池中的所有机器执行此操作,即有一个包含需要运行的作业的中央队列,以及一个将它们(通过 ssh)分布在下面的机器上的脚本一定的负荷。有任何想法吗?
问问题
893 次
1 回答
0
首先:去与计算池的系统管理员交谈。如今,企业范围的作业调度程序已成为基础架构中相当常见的组件。通常,这些调度程序不会考虑系统负载。
如果上述方法不能提供一个好的解决方案,你应该仔细考虑你的作业会给机器带来什么负载:你的作业可能会给 CPU 带来更多压力,消耗大量内存,产生大量网络或磁盘 IO 活动。因此,确定您的工作是否应该开始可能取决于大量测量,其中一些测量作为普通用户将无法执行(取决于您运行的操作系统类型以及安全性有多严格)。无论如何:您只能考虑作业启动时的负载。显然,如果每个用户都这样做,那么您很快就会回到原点……
如果您的系统管理员有某种资源控制(例如 Solaris 中的项目),他们可以确保您的批处理不会破坏计算池中的节点,这可能是一个更好的主意。接下来,编写批处理作业,使其能够应对操作系统拒绝资源请求。
编辑:至于分布式性质:排队作业并让所有节点上的客户端指向同一个队列,在资源控制的上下文中尽可能多地消耗......
于 2012-02-05T10:20:02.443 回答