7

我想找到一个用户空间工具(最好是在 Python 中——除此之外,如果它还没有做我需要的事情,我可以轻松修改)来替换我一直在使用的简短脚本以下两件事:

  • 轮询不到 100 台计算机(Fedora 13,它就是这样)的负载、可用内存以及是否有人在使用它们
  • 为作业选择好的主机,通过 ssh 运行这些作业。这些作业是执行任意命令行程序,这些程序读取和写入共享文件系统——通常是图像处理脚本或类似的——cpu,有时是内存密集型任务。

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

>>> import hosts
>>> hosts.run_commands(['users']*5)

或从命令行

% hosts.py "users" "users" "users" "users" "users"

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

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

我为 Python 找到了很好的 ssh 库,比如classhPuSSH,它们没有我想要的(非常简单的)负载平衡功能。在我想要的另一边是 Condor 或 Slurm,正如在我澄清我想要更轻的东西之前由 crispamares 所建议的那样。那些会以正确的方式做事,但是从阅读它们的角度来看,它们听起来像是只有在我需要它们时才在用户空间中旋转它们,这会令人讨厌到不可能。这不是一个专用集群,我在这些主机上没有 root 访问权限。

我目前正计划在 classh 周围使用一个包装器,并在我找不到其他东西时,只要我需要知道它们有多忙,就可以对计算机进行一些基本的轮询。

4

6 回答 6

3

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

于 2012-11-27T15:24:12.573 回答
2

Slurm是一个强大的作业调度程序,可以使用PySlurm在 Python 中进行编程。

我不知道它是否比 Condor 更难部署。另外我不知道它是否满足您的所有需求,但以防万一,我把它写下来。

于 2011-04-12T14:50:35.993 回答
1

看看func。我没有在“Hello, world”级别之外使用它,但我认为它非常适合你。

于 2011-12-22T14:01:21.497 回答
1

你可以修改 buildbot 和扭曲?这似乎是一个不错的方法。

于 2011-04-12T14:30:36.577 回答
1

我可能有点晚了:我喜欢在这里推荐看看python saga

于 2014-03-19T11:10:45.470 回答
0

这个问题我可能迟到了,但我最近遇到了同样的问题,我正在寻找一个 C/C+ 库,我可以在其中进行作业调度和服务器负载平衡,以便在服务器集群上处理图像文件。我将从 GUI 调用库并监视作业的状态。

我安装了 slurm 并尝试了这些命令,但是将其用作工具并可能用作库似乎相当困难。其他选项似乎提供作业调度,但没有基于 CPU 利用率的负载平衡。我将不胜感激任何建议。

此致

于 2015-09-01T08:43:14.350 回答