Je cherche des conseils pour déterminer précisément la quantité de RAM utilisée par mon travail sur mon cluster. Mon travail n'est pas multithreadé et fonctionne sur un seul processeur.
Lorsque je lance mon travail et que j'exécute "top", je peux voir qu'il utilise autant de RAM...
VIRT: 45.6g
RES: 38g
SHR: 9600
ce qui (corrigez-moi si je me trompe) signifie que j'utilise 38 gigaoctets de RAM réelle, et 7,6 gigaoctets d'éléments qui ont pu être déplacés vers le swap. Les chiffres autour de 40 Gigs correspondent à ce que les auteurs de l'outil que je teste disent que mon travail devrait utiliser.
La confusion survient lorsque j'obtiens ces chiffres de la SGE (en utilisant qstat ou qacct). qacct -j 7270916
Ici, je vois
mem 2768.453
maxvmem 4.078G
Cependant, aucune de ces valeurs n'est proche des 45,6 gigas de RAM que je sais utiliser (même si maxvmem semble devoir représenter les 45,6 gigas).
Pendant que le travail était en cours, j'ai essayé d'utiliser la commande suivante qstat -j 7270916
dans lequel j'ai vu la ligne :
usage 1: cpu=00:01:37, mem=168.12988 GBs, io=38.64676, vmem=1.665G, maxvmem=4.078G
Je suppose que mem est une somme de toute la RAM qui a été utilisée/libérée/utilisée/libérée au cours de l'exécution (elle vient de se terminer), mais maxvmem est toujours très bas (beaucoup moins que mes 45,6 gigas attendus).
Ainsi, mon utilisation de qcct et qstat génère des chiffres qui ne correspondent pas aux chiffres attendus (que je vois avec top).
Quelqu'un a-t-il des suggestions sur la façon d'obtenir des chiffres d'utilisation de la RAM qui aient un sens en utilisant les commandes SGE après la fin de l'exécution ?
EDIT : j'utilise SGE 6.2u5
0 votes
Juste une remarque sur la valeur de la mémoire : Selon linux.die.net/man/1/qacct le format de la commande qacct est défini par sge_accounting ( linux.die.net/man/5/sge_accounting ), qui indique que mem est "L'utilisation de la mémoire intégrale en Gbytes secondes cpu". Avez-vous défini une limite maximale de mémoire virtuelle (s_vmem/h_vmem) ?