0

我的应用程序启动了数百个发送到 SGE 的子进程。由于哪些作业失败,它们中很少有人占用大量内存。我需要一些方法来监控来自主进程的客户端的内存使用情况,并在此类作业失败的情况下重新启动/重新将它们提交到具有更高内存要求的网格。我听说过一些关于此类要求缺少心跳算法的信息,但我不太了解它们。这里的专家可以帮助我找到解决这个问题的好方法吗?我的应用程序是 Linux/Solaris 上的 c++ 应用程序。

谢谢鲁奇

4

1 回答 1

0

我之前使用的一个解决方案是有一个脚本来捕获来自qstat -command 的输出(在我的例子中使用 rsh)。我过滤我的工作并将我需要的信息(在我的情况下是 CPU)存储在一个不断更新的列表中。当作业中止或被终止时,很容易返回查看 CPU 使用情况。它不是 100% 实时的,但对我来说已经足够了。

我选择的语言是 Python,因为它包含用于捕获输出和登录到远程机器的易于使用的库。但是,在 C++ 中实现诸如捕获 rsh 输出之类的东西应该很容易。例如,您可以使用popen()将输出通过管道传输到您的应用程序中。我希望这有帮助。

于 2013-06-27T19:23:41.837 回答