Sun Grid Engine(SGE)中的h_rss和h_vmem有什么区别?

据我所知,

  • 可以指定mem_free在具有内存free = mem_free的主机中提交作业,而
  • h_vmem是作业可以使用的内存的硬性限制,如果作业到达h_vmem ,作业会崩溃? 我想我们可以将主机的h_vmem设置为总的物理内存,以便作业不会开始使用交换,并减慢服务器的速度。

那么什么是h_rss ? 它看起来和h_vmem.具有相同的定义h_vmem.

还是我误解了h_vmemh_vmem是用来保留它可能需要的额外内存,而不是它所需的最小内存( mem_free )? 但是,如果超过内存不要崩溃,所以工作可以超过h_vmem

如果我对h_vmem第二个解释是正确的,那么我猜测,要在一个主机上提交一个工作,这个工作必须同时满足mem_freeh_vmem (因为h_vmem不是INFINITY)。

如果我对h_vmem第一个解释是正确的,那么我想,在一个主机上提交一个工作,这个工作可以单独满足mem_free ,不需要满足h_vmem ,因为它只保留可用空间,如果没有空间可用,这没关系?

好吧,我通过检查执行服务器中正在运行的作业进程的/proc/<pid>/limits来find答案。

  • 当我提交h_rss=10G的作业时, Max Resident Set值设置为10737418240字节(即10G)。 (在操作系统的默认值是无限的)所以,进程不能超过这个内存。 也是不可消费的东西。

  • 而当我提交h_vmem=50G的作业时,在限制中Max Resident Set值等于无限制 。 所以,它可以继续超过50G 。 然而,这是消耗性的,因此,主机的h_vmem减less了50G

    这可以通过运行以下命令find:

    • qhost -h <hostname> -F h_vmem ,其中h_vmem显示当前的h_vmem值和
    • qconf -se <hostname> ,其中complex_values中的h_vmem显示已分配的h_vmem值。