sdiag
Section: Slurm Commands (1)Updated: Slurm Commands
Index
NAME
sdiag - Scheduling diagnostic tool for Slurm
sdiag-Slurmのスケジュール診断ツール
SYNOPSIS
sdiag
DESCRIPTION
sdiag shows information related to slurmctld execution about: threads, agents,
jobs, and scheduling algorithms.
sdiagは、スレッド、エージェント、ジョブ、およびスケジューリングアルゴリズムに関するslurmctld実行に関連する情報を表示します。
The goal is to obtain data from slurmctld
behaviour helping to adjust configuration parameters or queues policies.
目標は、構成パラメーターまたはキューポリシーの調整に役立つslurmctld動作からデータを取得することです。
The
main reason behind is to know Slurm behaviour under systems with a high throughput.
背後にある主な理由は、高スループットのシステムでのSlurmの動作を知ることです。
It has two execution modes. The default mode --all shows several counters
and statistics explained later, and there is another execution option
--reset for resetting those values.
2つの実行モードがあります。デフォルトモード--allには、後で説明するいくつかのカウンターと統計が表示されます。これらの値をリセットするための別の実行オプション--resetがあります。
Values are reset at midnight UTC time by default.
デフォルトでは、値はUTCの午前0時にリセットされます。
The first block of information is related to global slurmctld execution:
最初の情報ブロックは、グローバルなslurmctldの実行に関連しています。
- Server thread count
-
The number of current active slurmctld threads. A high number would mean a high
load processing events like job submissions, jobs dispatching, jobs completing,
etc. If this is often close to MAX_SERVER_THREADS it could point to a potential
bottleneck.
現在アクティブなslurmctldスレッドの数。高い数値は、ジョブの送信、ジョブのディスパッチ、ジョブの完了などの高負荷処理イベントを意味します。これがMAX_SERVER_THREADSに近いことが多い場合は、潜在的なボトルネックを示している可能性があります。
- Agent queue size
-
Slurm design has scalability in mind and sending messages to thousands of nodes
is not a trivial task. The agent mechanism helps to control communication
between slurmctld and the slurmd daemons for a best effort. This value denotes
the count of enqueued outgoing RPC requests in an internal retry list.
スラム設計はスケーラビリティを念頭に置いており、メッセージを数千のノードに送信することは簡単な作業ではありません。エージェントメカニズムは、slurmctldとslurmdデーモン間の通信を制御して、ベストエフォートを実現します。この値は、内部再試行リストにエンキューされた発信RPC要求の数を示します。
- Agent count
-
Number of agent threads. Each of these agent threads can create in turn a group
of up to 2 + AGENT_THREAD_COUNT active threads at a time.
エージェントスレッドの数。これらの各エージェントスレッドは、同時に2つまでのグループ+ AGENT_THREAD_COUNTのアクティブスレッドを同時に作成できます。
- Agent thread count
-
Total count of active threads created by all the agent threads.
すべてのエージェントスレッドによって作成されたアクティブなスレッドの総数。
- DBD Agent queue size
-
Slurm queues up the messages intended for the SlurmDBD and processes them in a
separate thread. If the SlurmDBD, or database, is down then this number will
increase.
SlurmはSlurmDBD向けのメッセージをキューに入れ、別のスレッドで処理します。SlurmDBD、またはデータベースがダウンしている場合、この数は増加します。
The max queue size is configured in the slurm.conf with MaxDBDMsgs. If this number begins to grow more than half of the max queue size, the slurmdbd and the database should be investigated immediately.
最大キューサイズは、MaxDBDMsgsを使用してslurm.confで設定されます。この数が最大キューサイズの半分を超えて増加し始めた場合は、slurmdbdとデータベースをすぐに調査する必要があります。
- Jobs submitted
-
Number of jobs submitted since last reset
最後のリセット以降に送信されたジョブの数
- Jobs started
-
Number of jobs started since last reset. This includes backfilled jobs.
最後のリセット以降に開始されたジョブの数。これには、バックフィルされたジョブが含まれます。
- Jobs completed
-
Number of jobs completed since last reset.
最後のリセット以降に完了したジョブの数。
- Jobs canceled
-
Number of jobs canceled since last reset.
最後のリセット以降にキャンセルされたジョブの数。
- Jobs failed
-
Number of jobs failed due to slurmd or other internal issues since last reset.
前回のリセット以降、slurmdまたはその他の内部的な問題により失敗したジョブの数。
- Job states ts:
-
Lists the timestamp of when the following job state counts were gathered.
次のジョブ状態カウントが収集されたときのタイムスタンプをリストします。
- Jobs pending:
-
Number of jobs pending at the given time of the time stamp above.
上記のタイムスタンプの指定された時間に保留中のジョブの数。
- Jobs running:
-
Number of jobs running at the given time of the time stamp above.
上記のタイムスタンプの指定された時間に実行されているジョブの数。
- Jobs running ts:
-
Time stamp of when the running job count was taken.
実行中のジョブ数が取得されたときのタイムスタンプ。
The next block of information is related to main scheduling algorithm based
on jobs priorities. A scheduling cycle implies to get the job_write_lock lock,
then trying to get resources for jobs pending, starting from the most priority
one and going in descendent order.
次の情報ブロックは、ジョブの優先順位に基づくメインスケジューリングアルゴリズムに関連しています。スケジューリングサイクルは、job_write_lockロックを取得し、次に保留中のジョブのリソースを取得しようとすることを意味します。
Once a job can not get the resources the
loop keeps going but just for jobs requesting other partitions. Jobs with
dependencies or affected by accounts limits are not processed.
ジョブがリソースを取得できなくなると、ループは継続しますが、他のパーティションを要求するジョブのためだけです。依存関係があるジョブ、またはアカウント制限の影響を受けるジョブは処理されません。
- Last cycle
-
Time in microseconds for last scheduling cycle.
最後のスケジューリングサイクルの時間(マイクロ秒)。
- Max cycle
-
Maximum time in microseconds for any scheduling cycle since last reset.
最後のリセット以降のスケジューリングサイクルのマイクロ秒単位の最大時間。
- Total cycles
-
Total run time in microseconds for all scheduling cycles since last reset.
Scheduling is performed periodically and (depending upon configuration)
when a job is submitted or a job is completed.
最後のリセット以降のすべてのスケジューリングサイクルの合計実行時間(マイクロ秒)。スケジュールは、定期的に、および(構成に応じて)ジョブが送信されたとき、またはジョブが完了したときに実行されます。
- Mean cycle
-
Mean time in microseconds for all scheduling cycles since last reset.
最後のリセット以降のすべてのスケジューリングサイクルの平均時間(マイクロ秒)。
- Mean depth cycle
-
Mean of cycle depth. Depth means number of jobs processed in a scheduling cycle.
サイクル深度の平均。深さとは、スケジューリングサイクルで処理されるジョブの数を意味します。
- Cycles per minute
-
Counter of scheduling executions per minute.
1分あたりのスケジュール実行のカウンター。
- Last queue length
-
Length of jobs pending queue.
キューを保留しているジョブの長さ。
The next block of information is related to backfilling scheduling algorithm.
次の情報ブロックは、バックフィルスケジューリングアルゴリズムに関連しています。
A backfilling scheduling cycle implies to get locks for jobs, nodes and
partitions objects then trying to get resources for jobs pending. Jobs are
processed based on priorities. If a job can not get resources the algorithm
calculates when it could get them obtaining a future start time for the job.
バックフィルスケジューリングサイクルは、ジョブ、ノード、パーティションオブジェクトのロックを取得してから、保留中のジョブのリソースを取得しようとすることを意味します。ジョブは優先順位に基づいて処理されます。ジョブがリソースを取得できない場合、アルゴリズムは、ジョブの将来の開始時間を取得できるタイミングを計算します。
Then next job is processed and the algorithm tries to get resources for that
job but avoiding to affect the previous ones, and again it calculates
the future start time if not current resources available. The backfilling
algorithm takes more time for each new job to process since more priority jobs
can not be affected. The algorithm itself takes measures for avoiding a long
execution cycle and for taking all the locks for too long.
次に、次のジョブが処理され、アルゴリズムはそのジョブのリソースを取得しようとしますが、前のジョブに影響を与えないようにし、現在のリソースが利用できない場合は、将来の開始時間を計算します。優先度の高いジョブは影響を受けないため、バックフィルアルゴリズムは、新しいジョブを処理するたびに時間がかかります。アルゴリズム自体は、長い実行サイクルを回避するため、およびすべてのロックを過度に長くするための対策を講じます。
- Total backfilled jobs (since last slurm start)
-
Number of jobs started thanks to backfilling since last slurm start.
前回のスラム開始以降のバックフィルのおかげで開始されたジョブの数。
- Total backfilled jobs (since last stats cycle start)
-
Number of jobs started thanks to backfilling since last time stats where reset.
By default these values are reset at midnight UTC time.
前回の統計がリセットされてからのバックフィルのおかげで開始されたジョブの数。デフォルトでは、これらの値はUTC時刻の午前0時にリセットされます。
- Total backfilled heterogeneous job components
-
Number of heterogeneous job components started thanks to backfilling since
last Slurm start.
前回のSlurm開始以降のバックフィルのおかげで、異種ジョブコンポーネントの数が開始されました。
- Total cycles
-
Number of backfill scheduling cycles since last reset
最後のリセット以降のバックフィルスケジューリングサイクルの数
- Last cycle when
-
Time when last backfill scheduling cycle happened in the format
"weekday Month MonthDay hour:minute.seconds year"
最後のバックフィルスケジューリングサイクルが発生した時刻。形式は「平日月月日日時間:分。秒年」
- Last cycle
-
Time in microseconds of last backfill scheduling cycle.
最後のバックフィルスケジューリングサイクルのマイクロ秒単位の時間。
It counts only execution time, removing sleep time inside a scheduling cycle when it executes for an extended period time.
実行時間のみをカウントし、長時間実行するとスケジューリングサイクル内のスリープ時間を削除します。
Note that locks are released during the sleep time so that other work can proceed.
ロックはスリープ時間中に解放されるため、他の作業を続行できることに注意してください。
- Max cycle
-
Time in microseconds of maximum backfill scheduling cycle execution since last reset.
最後のリセット以降の最大バックフィルスケジューリングサイクル実行のマイクロ秒単位の時間。
It counts only execution time, removing sleep time inside a scheduling cycle when it executes for an extended period time.
実行時間のみをカウントし、長時間実行するとスケジューリングサイクル内のスリープ時間を削除します。
Note that locks are released during the sleep time so that other work can proceed.
ロックはスリープ時間中に解放されるため、他の作業を続行できることに注意してください。
- Mean cycle
-
Mean time in microseconds of backfilling scheduling cycles since last reset.
最後のリセット以降のバックフィルスケジューリングサイクルの平均時間(マイクロ秒)。
- Last depth cycle
-
Number of processed jobs during last backfilling scheduling cycle. It counts
every job even if that job can not be started due to dependencies or limits.
最後のバックフィルスケジューリングサイクル中に処理されたジョブの数。依存関係または制限のためにそのジョブを開始できない場合でも、すべてのジョブをカウントします。
- Last depth cycle (try sched)
-
Number of processed jobs during last backfilling scheduling cycle. It counts
only jobs with a chance to start using available resources.
最後のバックフィルスケジューリングサイクル中に処理されたジョブの数。利用可能なリソースの使用を開始する機会のあるジョブのみをカウントします。
These jobs consume more scheduling time than jobs which are found can not be started due to dependencies or limits.
これらのジョブは、依存関係または制限のために開始できないことが判明したジョブよりも多くのスケジューリング時間を消費します。
- Depth Mean
-
Mean count of jobs processed during all backfilling scheduling cycles since last
reset.
最後のリセット以降のすべてのバックフィルスケジューリングサイクル中に処理されたジョブの平均数。
Jobs which are found to be ineligible to run when examined by the backfill scheduler are not counted (e.g. jobs submitted to multiple partitions and already started, jobs which have reached a QOS or account limit such as maximum running jobs for an account, etc).
バックフィルスケジューラによる調査の結果、実行に適格でないと判明したジョブはカウントされません(たとえば、複数のパーティションに送信されて既に開始されているジョブ、QOSまたはアカウントの最大実行ジョブなどのアカウント制限に達しているジョブなど)。
- Depth Mean (try sched)
-
The subset of Depth Mean that the backfill scheduler attempted to schedule.
バックフィルスケジューラがスケジュールしようとした深さ平均のサブセット。
- Last queue length
-
Number of jobs pending to be processed by backfilling algorithm.
バックフィルアルゴリズムによる処理が保留されているジョブの数。
A job is counted once for each partition it is queued to use.
ジョブは、使用するためにキューに入れられたパーティションごとに1回カウントされます。
A pending job array will normally be counted as one job (tasks of a job array which have already been started/requeued or individually modified will already have individual job records and are each counted as a separate job).
保留中のジョブ配列は通常、1つのジョブとしてカウントされます(すでに開始/再キューイングされているか、個別に変更されたジョブ配列のタスクには、すでに個別のジョブレコードがあり、それぞれ別のジョブとしてカウントされます)。
- Queue length Mean
-
Mean count of jobs pending to be processed by backfilling algorithm.
バックフィルアルゴリズムによる処理が保留されているジョブの平均数。
A job once for each partition it requested.
要求したパーティションごとに1回のジョブ。
A pending job array will normally be counted as one job (tasks of a job array which have already been started/requeued or individually modified will already have individual job records and are each counted as a separate job).
保留中のジョブ配列は通常、1つのジョブとしてカウントされます(すでに開始/再キューイングされているか、個別に変更されたジョブ配列のタスクには、すでに個別のジョブレコードがあり、それぞれ別のジョブとしてカウントされます)。
- Last table size
-
Count of different time slots tested by the backfill scheduler in its last
iteration.
最後の反復でバックフィルスケジューラによってテストされたさまざまなタイムスロットの数。
- Mean table size
-
Mean count of different time slots tested by the backfill scheduler.
バックフィルスケジューラによってテストされたさまざまなタイムスロットの平均数。
Larger counts increase the time required for the backfill operation.
カウントを大きくすると、バックフィル操作に必要な時間が長くなります。
The table size is influenced by many schuling parameters, including: bf_min_age_reserve, bf_min_prio_reserve, bf_resolution, and bf_window.
テーブルのサイズは、bf_min_age_reserve、bf_min_prio_reserve、bf_resolution、bf_windowなど、多くのシューリングパラメーターの影響を受けます。
- Latency for 1000 calls to gettimeofday()
-
Latency of 1000 calls to the gettimeofday() syscall in microseconds,
as measured at controller startup.
コントローラーの起動時に測定された、マイクロ秒単位のgettimeofday()システムコールへの1000呼び出しの待ち時間。
The next blocks of information report the most frequently issued
remote procedure calls (RPCs), calls made for the Slurmctld daemon to perform
some action.
次の情報ブロックは、最も頻繁に発行されるリモートプロシージャコール(RPC)、Slurmctldデーモンが何らかのアクションを実行するために行われたコールを報告します。
The fourth block reports the RPCs issued by message type.
4番目のブロックは、メッセージタイプごとに発行されたRPCを報告します。
You will need to look up those RPC codes in the Slurm source code by looking
them up in the file src/common/slurm_protocol_defs.h.
これらのRPCコードは、src / common / slurm_protocol_defs.hファイルで検索して、Slurmソースコードで検索する必要があります。
The report includes the number of times each RPC is invoked, the total time
consumed by all of those RPCs plus the average time consumed by each RPC in
microseconds.
レポートには、各RPCが呼び出された回数、それらすべてのRPCによって消費された合計時間に加えて、各RPCによって消費された平均時間(マイクロ秒)が含まれます。
The fifth block reports the RPCs issued by user ID, the total number of RPCs
they have issued, the total time consumed by all of those RPCs plus the average
time consumed by each RPC in microseconds.
5番目のブロックは、ユーザーIDによって発行されたRPC、それらが発行したRPCの総数、それらすべてのRPCによって消費された合計時間と各RPCによって消費された平均時間(マイクロ秒)を報告します。
RPCs statistics are collected for the life of the slurmctld process unless
explicitly --reset.
RPC統計は、明示的に--resetを指定しない限り、slurmctldプロセスの存続期間中に収集されます。
The sixth block of information, labeled Pending RPC Statistics, shows
information about pending outgoing RPCs on the slurmctld agent queue.
Pending RPC Statisticsというラベルの付いた6番目の情報ブロックには、slurmctldエージェントキューで保留中の発信RPCに関する情報が表示されます。
The first section of this block shows types of RPCs on the queue and the
count of each. The second section shows up to the first 25 individual RPCs
pending on the agent queue, including the type and the destination host list.
このブロックの最初のセクションは、キュー上のRPCのタイプとそれぞれの数を示しています。2番目のセクションには、タイプと宛先ホストリストを含め、エージェントキューで保留中の最初の25個の個別RPCが表示されます。
This information is cached and only refreshed on 30 second intervals.
この情報はキャッシュされ、30秒間隔でのみ更新されます。
OPTIONS
- -a, --all
-
Get and report information. This is the default mode of operation.
情報を取得して報告します。これがデフォルトの動作モードです。
- -h, --help
-
Print description of options and exit.
オプションの説明を出力して終了します。
- -i, --sort-by-id
-
Sort Remote Procedure Call (RPC) data by message type ID and user ID.
リモートプロシージャコール(RPC)データをメッセージタイプIDとユーザーIDで並べ替えます。
- -M, --cluster=<string>
-
The cluster to issue commands to. Only one cluster name may be specified.
コマンドを発行するクラスター。指定できるクラスター名は1つだけです。
Note that the SlurmDBD must be up for this option to work properly.
このオプションが正しく機能するには、SlurmDBDが稼働している必要があります。
- -r, --reset
-
Reset scheduler and RPC counters to 0. Only supported for Slurm operators and
administrators.
スケジューラーとRPCカウンターを0にリセットします。Slurmオペレーターと管理者に対してのみサポートされます。
- -t, --sort-by-time
-
Sort Remote Procedure Call (RPC) data by total run time.
リモートプロシージャコール(RPC)データを合計実行時間で並べ替えます。
- -T, --sort-by-time2
-
Sort Remote Procedure Call (RPC) data by average run time.
リモートプロシージャコール(RPC)データを平均実行時間で並べ替えます。
- --usage
-
Print list of options and exit.
オプションのリストを出力して終了します。
- -V, --version
-
Print current version number and exit.
現在のバージョン番号を出力して終了します。
PERFORMANCE
Executing sdiag sends a remote procedure call to slurmctld.
sdiagを実行すると、リモートプロシージャコールがslurmctldに送信されます。
If
enough calls from sdiag or other Slurm client commands that send remote
procedure calls to the slurmctld daemon come in at once, it can result in
a degradation of performance of the slurmctld daemon, possibly resulting
in a denial of service.
リモートプロシージャコールをslurmctldデーモンに送信するsdiagまたは他のSlurmクライアントコマンドからの十分な呼び出しが一度に着信すると、slurmctldデーモンのパフォーマンスが低下し、サービス拒否が発生する可能性があります。
Do not run sdiag or other Slurm client commands that send remote procedure
calls to slurmctld from loops in shell scripts or other programs. Ensure
that programs limit calls to sdiag to the minimum necessary for the
information you are trying to gather.
シェルスクリプトまたは他のプログラムのループからslurmctldにリモートプロシージャコールを送信するsdiagまたは他のSlurmクライアントコマンドを実行しないでください。プログラムが、sdiagへの呼び出しを、収集しようとしている情報に必要な最小限に制限していることを確認してください。
ENVIRONMENT VARIABLES
Some sdiag options may be set via environment variables.
一部のsdiagオプションは、環境変数を介して設定できます。
These
environment variables, along with their corresponding options, are listed below.
これらの環境変数と対応するオプションを以下に示します。
(Note: commandline options will always override these settings)
(注:コマンドラインオプションは常にこれらの設定を上書きします)
- SLURM_CLUSTERS
- Same as --cluster
- SLURM_CONF
-
The location of the Slurm configuration file.
Slurm構成ファイルの場所。
COPYING
Copyright (C) 2010-2011 Barcelona Supercomputing Center.Copyright (C) 2010-2019 SchedMD LLC.
Slurm is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Slurm is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
SEE ALSO
sinfo(1), squeue(1), scontrol(1), slurm.conf(5),
Index
This document was created by man2html using the manual pages.
Time: 20:44:46 GMT, May 21, 2020