有没有人在Grid Engine / Sun Grid Engine / Grid Engine的儿子上运行Docker并能够monitor the resource used by the daemon?问题是当我qsub docker run ...
时,容器中的实际进程由docker
守护进程而不是docker
客户端运行,这意味着进程树是不同的。
SGE是否有办法跟踪不同树中进程的资源(我不假设)?
另一个选项是qsub
首先启动docker守护程序然后运行所需docker run
命令的脚本,以便所有进程都在SGE启动的同一进程树中。这将要求sge具有启动守护程序(root访问权限)的权限,并且还可能导致在主机上运行多个docker守护程序。
替代流程树的另一个问题是作业是否提交了指定的daemeon(-d
)。在这种情况下,docker客户端将完成,但docker守护程序可能仍在运行容器
答案 0 :(得分:0)
你是正确的,当你使用#docker run ....'它与守护进程通信并从映像创建容器。这意味着进程树不能被Grid Engine'无法管理。因为Grid Engine execd(启动作业的守护程序)不是树的父级。使用Sun Grid Engine,Grid Engine和Open Grid Scheduler,目前无法将Grid Engine插入到流程树中。
您可以修改Grid Engine源代码并使用Docker API来控制容器并从容器中收集资源信息 - 但是我不认为有人在Sun Grid Engine中完成了这项工作。
然而,Univa Grid Engine,Grid Engine的商业版确实具有此功能(免责声明:我为Univa工作)。 Univa Grid Engine使用Docker API来启动容器,并且有一个共同牧羊人,它是一个小型守护程序,在容器中运行以收集资源使用并提供作业控制。