在Grid Engine / Sun Grid Engine / Grid Engine上使用Docker

有没有人有经验在网格引擎/太阳网格引擎/儿子网格引擎上运行Docker,并能够监视守护进程使用的资源 ? 问题是,当我qsub docker run ... ,容器中的实际进程是由docker守护进程而不是docker客户端运行,这意味着进程树是不同的。

SGE有没有办法跟踪另一棵树上的进程的资源(我假设不)?

另一个select是qsub脚本,首先启动docker守护程序,然后运行所需的docker run命令,以便所有进程都位于由SGE启动的同一个进程树中。 这将要求sge有权启动守护进程(root访问权限),并可能导致在主机上运行多个docker守护进程。

替代进程树的另一个问题是作业是否提交了指定的daemeon( -d )。 在这种情况下,docker客户端将完成,但docker守护进程可能仍然在运行容器

你是正确的,当你使用“docker run ….”时,它会跟守护进程通信,并从映像创build一个容器。 这意味着进程树是“不可由Grid Enginepipe理”的,因为Grid Engine execd(启动作业的守护进程)不是树的父节点。 使用Sun Grid Engine,Grid Engine和Open Grid Scheduler之子,目前没有办法将Grid Engine插入到stream程树中。

您可以修改Grid Engine源代码并使用Docker API来控制容器并从容器中收集资源信息 – 但是我不认为有人在Sun Grid Engine中完成了这项工作。

不过,网格引擎的商业版本Univa Grid Engine确实具有此function(免责声明:我为Univa工作)。 Univa网格引擎使用Docker API来启动容器,并且有一个共同的牧羊人,它是一个在容器中运行的小型守护程序,用于收集资源使用情况并提供作业控制。