Rastrear o uso de memória de um trabalho no SGE

7

Estou procurando algumas orientações sobre como calcular com precisão a quantidade de RAM que meu trabalho está usando no meu cluster. Meu trabalho não é multi-threaded e é executado em uma única cpu.

Quando executo meu trabalho e corro "top", vejo que ele usa essa quantidade de RAM ...

VIRT: 45.6g
RES: 38g
SHR: 9600

qual (me corrija onde eu estou errado) significa que eu estou usando 38 GB de RAM real, e 7.6 GB de coisas que podem ter sido movidas para swap. Os números em torno de 40 Gigs são o que os autores da ferramenta que estou testando dizem que meu trabalho deveria estar usando.

A confusão surge quando recebo esses números do SGE (usando qstat ou qacct). %código% Aqui eu vejo

mem 2768.453
maxvmem 4.078G

No entanto, nenhum destes está perto dos 45.6 GB de RAM que eu sei que estou usando (mesmo que o maxvmem soe como deveria representar os 45.6 shows).

Enquanto o trabalho estava em execução, tentei usar este comando %código% em que vi a linha:

usage 1: cpu=00:01:37, mem=168.12988 GBs, io=38.64676, vmem=1.665G, maxvmem=4.078G

Eu acho que mem é uma soma de toda a RAM que foi usada / liberada / usada / liberada durante a corrida (acabou de terminar), mas maxvmem ainda é muito baixa (muito menos que meus esperados 45.6 shows). / p>

Assim, meu uso de qcct e qstat gera números que não concordam com os números esperados (que eu vejo com o topo).

Alguém por aí tem sugestões sobre como obter números de uso de RAM que façam sentido usando comandos do SGE após o término da execução?

EDIT: Estou usando o SGE 6.2u5

    
por lonestar21 12.03.2013 / 21:42

1 resposta

3

Esta é uma pergunta antiga, mas se você ainda não descobriu, pode digitar

qstat -j <Job_ID>

A categoria "maxvmem" fornece a quantidade máxima de RAM usada pelo seu trabalho quando estava em execução. Portanto, o valor de maxvmem é o número que você está procurando para encontrar a maior quantidade de memória usada pelo seu trabalho enquanto ele estava em execução.

Além disso, você só pode usar qstat enquanto seu trabalho estiver em execução. Se você quiser ver o uso de memória depois que o seu trabalho terminar, você terá que usar

qacct -j <Job_ID>.

Espero que isso ajude e abaixo está um link com mais informações.

link

    
por 04.06.2015 / 15:44