Назад | Перейти на главную страницу

Отслеживайте использование памяти заданием на SGE

Мне нужны рекомендации, как точно определить, сколько оперативной памяти моя работа использует в моем кластере. Моя работа не многопоточна и выполняется на одном процессоре.

Когда я запускаю свою работу и запускаю "top", я вижу, что он использует столько оперативной памяти ...

VIRT: 45.6g
RES: 38g
SHR: 9600

что (поправьте меня, где я ошибаюсь) для меня означает, что я использую 38 гигабайт реальной оперативной памяти и 7,6 гигабайт материала, который, возможно, был перемещен для обмена. Цифры около 40 гигабайт - это то, что, по мнению авторов тестируемого мной инструмента, должна использовать моя работа.

Путаница возникает, когда я получаю эти числа от SGE (используя qstat или qacct). qacct -j 7270916 Здесь я вижу

mem 2768.453
maxvmem 4.078G

Однако ни один из них не близок к 45,6 ГБ оперативной памяти, которую я знаю, что я использую (хотя maxvmem звучит так, как будто он действительно должен представлять 45,6 ГБ).

Пока выполнялось задание, я пробовал использовать эту команду qstat -j 7270916 в котором я увидел строчку:

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

Я предполагаю, что mem - это сумма всей ОЗУ, которая была использована / высвобождена / использована / высвобождена за время прогона (она только что закончилась), но maxvmem все еще очень низкий (намного меньше, чем мои ожидаемые 45,6 гигабайт).

Таким образом, мое использование qcct и qstat генерирует числа, которые не соответствуют ожидаемым числам (которые я вижу сверху).

Есть ли у кого-нибудь предложения о том, как получить значения использования ОЗУ, которые имеют смысл с помощью команд SGE после завершения запуска?

РЕДАКТИРОВАТЬ: я использую SGE 6.2u5

Это старый вопрос, но если вы все еще не поняли, можете ввести

qstat -j <Job_ID>

Категория «maxvmem» дает вам максимальный объем ОЗУ, который ваша работа использовала при выполнении. Таким образом, значение maxvmem - это число, которое вы ищете, чтобы найти наибольший объем памяти, который ваше задание использовало во время выполнения.

Кроме того, вы можете использовать qstat только во время выполнения вашего задания. Если вы хотите увидеть использование памяти после завершения работы, вам нужно использовать

qacct -j <Job_ID>.

Надеюсь, это поможет, и ниже есть ссылка с дополнительной информацией.

http://wiki.genomics.upenn.edu/index.php/HPC:Large_memory_jobs