监视自我进程的内存使用情况

时间:2013-06-26 05:50:44

标签: c++ linux

我有一个应用程序,它运行一个包装器并作为网格上的作业提交(Linux)。 任务是监视进程的RAM和虚拟内存使用情况,如果进程由于内存问题而失败,请再次将其重新提交到具有更高内存要求的网格(使用某些交换机)。 我认为这可以通过从监视主应用程序的应用程序调用一个单独的线程来实现,并且在失败的情况下重新启动主应用程序。 我正在寻求建议,以便更好地解决这个问题。

由于 Ruchi

2 个答案:

答案 0 :(得分:0)

线程不起作用,因为C和C ++ mandate that returning from the main function kills all running threads(礼貌Do child threads exit when the parent thread terminates)。

您需要创建另一个进程,可能是一个启动进程然后管理您的应用程序的脚本。

答案 1 :(得分:0)

通常的做法是检查内存分配何时失败,即malloc()。如果malloc()失败,则表示您的系统内存几乎已满,在特定情况下,您可以执行您喜欢的操作。