最近、ユーザーは私たちのクラスタで対話型ジョブを実行していました。我々は、ワークロードマネージャーとしてslurmを使用します。彼は割り当てを得ました:slurmはジョブのメモリ使用量をどのように決定するのですか
salloc --cpus-per-task=48 --time=14-0 --partition=himem
これは、私たちのクラスタ上のハイメモリ(1.5TB)マシン全体を要求します。彼は仕事をしました。
salloc: Error memory limit exceeded
は、私は、彼の仕事が唯一のRESで310ギガバイトを取っていたtop
を使用して、ノードにログインして:それは実行していたが、彼の画面上に、彼は(このようなか何か)エラーメッセージが表示されました。しかしslurmd.log内のエラーのスルーは(8時間にわたる!)があり、このように:
[2017-08-03T23:21:55.200] [398692.4294967295] Step 398692.4294967295 exceeded memory limit (1588997632 > 1587511296), being killed
はQUESTION:なぜトップSLURMは、彼が1.58TBを使用していると考えている間、彼は310ギガバイトを使っていると思うのでしょうか?
slurmがプロセスを殺したと言われているので、ある時点で、1.5TBを使用していたプロセスがユーザーによって生成されていた可能性があります。 RedHatや派生したシステムがある場合は、[sadc](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Introduction_To_System_Administration/s3-resource-tools-sar-sadc)があるかもしれません。 .html)を実行し、この仮説をチェックするために10分間隔でmem使用データを収集します。 –
そうではないと思います。上記の '398692.'で報告されたPIDは、310GBプロセスのPIDと一致します。私は 'top 39'と' '396692.4294967295のメモリ制限を超過しました 'エラーを生成している間にslurmログを見ていました。そのようなエラーが発生していた間に、それほど多くのメモリを持っていたプロセスはありませんでした。 –