用于作业调度的Python库,ssh

Tho*_*mas 7 python ssh batch-processing job-scheduling condor

我想找一个用户空间工具(最好是在Python中 - 禁止在任何我可以轻易修改的内容,如果它还没有我需要的那样)来替换我一直在使用的那个短脚本以下两件事:

  • 调查少于100台计算机(Fedora 13,它会发生这种情况)的负载,可用内存,如果看起来有人正在使用它们
  • 为作业选择好的主机,通过ssh运行这些作业.这些作业是执行任意命令行程序,读取和写入共享文件系统 - 通常是图像处理脚本或类似程序 - cpu,有时是内存密集型任务.

例如,使用我当前的脚本,我可以在python提示符下

>>> import hosts
>>> hosts.run_commands(['users']*5)
Run Code Online (Sandbox Code Playgroud)

或者从命令行

% hosts.py "users" "users" "users" "users" "users"
Run Code Online (Sandbox Code Playgroud)

运行该命令users5次(通过从配置文件中检查至少5台计算机上的cpu负载和可用内存,找到可以运行该命令的5台计算机).除了我刚刚运行的脚本之外,应该没有作业服务器,并且在运行这些命令的计算机上没有工作人员守护程序或进程.

我还希望能够跟踪作业,在失败时再次运行作业等,但这些是我实际上并不需要的额外功能(在实际作业调度程序中非常标准).

我找到了很好的Python ssh库,比如classhPuSSH,它们没有我想要的(非常简单的)负载均衡功能.在我想要的另一边是Condor或Slurm,正如我在澄清之前所说的那样,我想要更轻松的东西.那些会以正确的方式做事,但是通过阅读它们,它们听起来就像在用户空间中将它们旋转起来只有在我需要它们时才会让人烦恼.这不是专用群集,我在这些主机上没有root访问权限.

我目前正计划使用一个包装器周围的包装器,当我需要知道如果我找不到其他东西时他们有多忙时,会对计算机进行一些基本的轮询.

Dar*_*rek 3

还有 布料,我很惊讶没有人提到它。