Lifematics Corporate Blog

Lifematics社のコーポレートブログへようこそ!

sacctコマンドについて

sacct コマンド

slurm の sacct コマンドは、ジョブの情報を表示するためのツールです。
これにより、過去に実行したジョブの詳細情報を確認できます。
具体的には、ジョブの状態、実行時間、消費したリソースなどが取得できます。

前回のSlurmの基本的なインストールではsacctコマンドは使用できず、以下のようなエラーメッセージが表示されます。

# sacct
Slurm accounting storage is disabled​

今回はsacctコマンドが利用できるようにする設定とコマンドの使い方をご紹介いたします。

sacctコマンドを使用するために必要な設定

slurm.confファイルを設定

# vim /etc/slurm/slurm.conf

AccountingStorageType=及びJobAcctGatherType=の記述を修正する

  • AccountingStorageType=accounting_storage/slurmdbd
  • JobAcctGatherType=jobacct_gather/linux

sacctコマンドを再び確認する。

# sacct
JobID           JobName  Partition    Account  AllocCPUS      State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------

>> sacctコマンドが使えるようになることを確認

設定直後はジョブの情報が空のため何も表示されませんが、いくつかジョブを実行したのちに確認すると、ジョブの情報が表示されます。

sacctコマンドの使い方

引数無しでsacctコマンドを実行すると、

$ sacct
JobID           JobName  Partition    Account  AllocCPUS      State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------
7            testjob.sh      debug                     1  COMPLETED      0:0
7.0          testjob.sh                                1  COMPLETED      0:0
8            testjob.sh      debug                     1  COMPLETED      0:0
8.batch           batch                                1  COMPLETED      0:0

>> 上記のような表示になる。1つのジョブを実行すると2行記録される。

  • JobID に .batch が付く理由は、ジョブがバッチスクリプトから実行されたことを示す
  • sbatchで実行すると「JobID+.batch」、srunで実行すると「jobID+.0」となる

次に、引数を設定してsacctコマンドを実行すると、指定した要素が表示されます。

$ sacct --format=JobID,User,Partition,Start,CPUTime,ReqCPUS,ReqMem --starttime 2024-09-19T00:00:00 --endtime 2024-09-19T23:59:59
JobID             User  Partition               Start    CPUTime  ReqCPUS     ReqMem
------------ --------- ---------- ------------------- ---------- -------- ----------
7            lifemati+      debug 2024-09-19T14:52:14   00:00:06        1         1M
7.0                               2024-09-19T14:52:14   00:00:06        1
8            lifemati+      debug 2024-09-19T14:52:31   00:00:07        1         1M
8.batch                           2024-09-19T14:52:31   00:00:07        1

>> 上記のような表示になる

  • --starttimeと--endtimeで表示期間を指定している
$ sacct --format=""JobID,User%10,Partition,Start,CPUTime,ReqCPUS,ReqMem""
JobID              User  Partition               Start    CPUTime  ReqCPUS     ReqMem
------------ ---------- ---------- ------------------- ---------- -------- ----------
7            lifematics      debug 2024-09-19T14:52:14   00:00:06        1         1M
7.0                                2024-09-19T14:52:14   00:00:06        1
8            lifematics      debug 2024-09-19T14:52:31   00:00:07        1         1M
8.batch                            2024-09-19T14:52:31   00:00:07        1

>> User%10とすることで表示幅を修正しユーザー名が全部表示される


sacctのTipsは以上となります。