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