次の方法で共有


JOBOBJECT_IO_RATE_CONTROL_INFORMATION構造体 (jobapi2.h)

Windows 10 バージョン 1607 以降: この構造体はサポートされていません。

ジョブの I/O レートを制御するために使用される情報が含まれます。 この構造体は、SetIoRateControlInformationJobObject および QueryIoRateControlInformationJobObject 関数 使用されます。

構文

typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION {
  LONG64 MaxIops;
  LONG64 MaxBandwidth;
  LONG64 ReservationIops;
  PCWSTR VolumeName;
  ULONG  BaseIoSize;
  ULONG  ControlFlags;
} JOBOBJECT_IO_RATE_CONTROL_INFORMATION;

メンバーズ

MaxIops

1 秒あたりの I/O 操作の I/O レートの上限 (IOPS)。 制限を指定しない場合は 0 に設定します。

MaxIops と MaxBandwithの両方を設定すると、オペレーティング システムは I/O レートが到達する最初の制限を適用します。

MaxBandwidth

1 秒あたりの I/O レートの最大制限 (バイト単位)。 制限を指定しない場合は、0 に設定します。

MaxBandwith と MaxIopsの両方 設定すると、オペレーティング システムは I/O レートが到達する最初の制限を適用します。

ReservationIops

オペレーティング システムがジョブ用に予約する最小 I/O レートを設定します。 ジョブを予約しない場合は、この値を 0 に設定します。

オペレーティング システムでは、可能であれば、この速度でジョブで I/O 操作を実行できます。 すべてのジョブの最小レートの合計がオペレーティング システムの容量を超える場合、オペレーティング システムが各ジョブで I/O 操作を実行できる速度は、ジョブの予約に比例します。

VolumeName

I/O レートのポリシーを適用するボリュームの NT デバイス名。 NT デバイス名の詳細については、「NT デバイス名を参照してください。

このメンバーが NULL場合、I/O レートのポリシーはオペレーティング システムのすべてのボリュームに適用されます。 たとえば、このメンバーが NULL で、MaxIops メンバーが 100 の場合、各ボリュームの I/O レートの上限は 100 IOPS に設定され、100 IOPS のすべてのボリュームの I/O レートの集計制限が設定されます。

BaseIoSize

正規化された I/O ユニットの基本サイズ (バイト単位)。 たとえば、BaseIoSize メンバーが 8,000 の場合、8,000 バイトごとに 1 つの I/O ユニットとしてカウントされます。 この例では 4,000 バイトも 1 つの I/O ユニットですが、8,001 バイトは 2 つの I/O ユニットです。

この基本 I/O サイズの値は、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\QoSStorageBaseIOSize 値を使用して設定できます。

レジストリ キー。

BaseIoSize メンバーの値には、次の制約があります。

  • SetIoRateControlInformationJobObject 関数では、BaseIoSize 関数に渡す JOBOBJECT_IO_RATE_CONTROL_INFORMATION 構造体のメンバーが 0 である必要があります。
  • QueryIoRateControlInformationJobObject メソッドは、VolumeName メンバーが指定するボリュームが I/O レートの制御をサポートしていない場合、この構造体の BaseIoSize メンバーを 0 に設定します。
  • QueryIoRateControlInformationJobObject メソッドは、VolumeName メンバーが指定したボリュームが I/O レートの制御をサポートしている場合、この構造体の BaseIoSize メンバーを正規化された I/O 単位の基本サイズに設定します。
ジョブを作成せずに正規化された I/O ユニットの基本サイズを照会するには、ジョブに関連付けられていないプロセスから null するように hJob パラメーターを設定して QueryIoRateControlInformationJobObject を呼び出します。

ControlFlags

I/O レートを制御するためのポリシー。 このメンバーには、次のいずれかの値を指定できます。

価値 意味
JOB_OBJECT_IO_RATE_CONTROL_ENABLE
0x1
この構造体が SetIoRateControlInformationJobObject 関数に渡されるときに、ジョブの I/O レートの制御をオンにします。 QueryIoRateControlInformationJobObject 関数でこの構造体を使用すると、ジョブの I/O レートの制御が有効になっていることを示します。

備考

入れ子になったジョブの階層内のジョブに対して設定できる I/O レート制御は 1 つだけです。 指定した設定は、そのジョブとそのジョブの階層内の子ジョブに適用されます。 この設定は、親ジョブから階層の最上位までのジョブのチェーンには適用されません。 I/O レート制御を設定した階層内の元のジョブの設定は、引き続き変更できます。 ただし、親ジョブを含む階層内の他のジョブの I/O レート制御の値を設定しようとすると失敗します。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2016 [デスクトップ アプリのみ]
ヘッダー jobapi2.h

関連項目

QueryIoRateControlInformationJobObject

SetIoRateControlInformationJobObject の