Ich suche nach Anleitungen, wie ich genau herausfinden kann, wie viel RAM mein Job in meinem Cluster verwendet. Mein Job ist kein Multithread-Job und läuft auf einer einzelnen CPU.
Wenn ich meinen Job ausführe und "top" ausführe, kann ich sehen, dass so viel RAM verwendet wird ...
VIRT: 45.6g
RES: 38g
SHR: 9600
Was für mich bedeutet, dass ich 38 GB echten RAM und 7,6 GB Material verwende, das möglicherweise zum Tauschen verschoben wurde. Die Zahlen um 40 Gigs sind das, was die Autoren des Tools, das ich teste, sagen, dass mein Job verwenden sollte.
Die Verwirrung entsteht, wenn ich diese Zahlen von SGE bekomme (mit qstat oder qacct).
qacct -j 7270916
Hier sehe ich
mem 2768.453
maxvmem 4.078G
Keines davon entspricht jedoch in der Nähe der 45,6 GB RAM, von denen ich weiß, dass ich sie verwende (obwohl maxvmem so klingt, als ob es wirklich die 45,6 GB darstellen sollte).
Während der Ausführung des Jobs habe ich versucht, diesen Befehl zu verwenden,
qstat -j 7270916
in dem ich die Zeile sah:
usage 1: cpu=00:01:37, mem=168.12988 GBs, io=38.64676, vmem=1.665G, maxvmem=4.078G
Ich denke, dass mem eine Summe des gesamten RAM ist, der während des Laufs verwendet / freigegeben / verwendet / freigegeben wurde (es wurde gerade beendet), aber maxvmem ist immer noch sehr niedrig (viel viel weniger als meine erwarteten 45,6 Gigs).
Meine Verwendung von qcct und qstat erzeugt also beide Zahlen, die nicht mit den erwarteten Zahlen übereinstimmen (die ich oben sehe).
Hat da draußen jemand Vorschläge, wie man RAM-Nutzungsnummern erhält, die mit SGE-Befehlen nach Beendigung des Laufs sinnvoll sind?
EDIT: Ich benutze SGE 6.2u5