Qual é a diferença entre h_rss e h_vmem no Sun Grid Engine (SGE)?

2

Até onde eu entendi,

  • mem_free pode ser especificado para enviar um trabalho em um host que tenha o memória livre = mem_free , enquanto
  • h_vmem é o limite rígido da memória até o qual o trabalho pode consumir e, se o trabalho atingir o h_vmem , o trabalho trava? Acho que podemos definir o h_vmem de um host próximo ao total da memória física, para que o trabalho não comece a usar o recurso de troca e deixe o servidor lento.

Então, o que é h_rss ? Parece ter a mesma definição de h_vmem.

Ou estou interpretando incorretamente h_vmem ? h_vmem é usado para reservar a memória extra necessária para que a memória mínima necessária ( mem_free )? Mas não falha se exceder a memória, então o trabalho pode exceder h_vmem ?

Se a minha segunda interpretação de h_vmem estiver correta, então, para que um trabalho seja enviado em um host, o trabalho deve satisfazer os dois mem_free e h_vmem (dado h_vmem não é INFINITY) .

E se a minha primeira interpretação de h_vmem estiver correta, então, para um trabalho ser enviado em um host, o trabalho pode satisfazer mem_free sozinho e não há necessidade de satisfazer h_vmem , já que ele só reserva o espaço disponível e se não houver espaço disponível, não importa?

    
por GP92 02.10.2016 / 19:35

1 resposta

2

Ok, encontrei resposta para isso verificando o /proc/<pid>/limits do processo de trabalho em execução no servidor de execução.

  • Quando envio um trabalho com h_rss=10G , nos limites, o valor de Max Resident Set é definido como 10737418240 bytes (isto é, 10G). (O valor padrão no sistema operacional é ilimitado) Assim, o processo não pode levar a memória além disso. E também h_rss é algo que não é consumível.

  • Considerando que, quando envio um trabalho com h_vmem=50G , nos limites, o valor de Max Resident Set é igual a unlimited . Assim, pode continuar além de 50G . No entanto, é consumível e, portanto, o h_vmem do host é reduzido por 50G .

    Isso pode ser encontrado executando os seguintes comandos:

    • qhost -h <hostname> -F h_vmem , em que h_vmem mostra o valor atual de h_vmem e
    • qconf -se <hostname> , em que h_vmem em complex_values mostra o valor h_vmem alocado.
por 02.10.2016 / 21:00