JOBOBJECT_IO_RATE_CONTROL_INFORMATION 结构 (jobapi2.h)

包含用于控制作业的 I/O 速率的信息。 SetIoRateControlInformationJobObjectQueryIoRateControlInformationJobObject 函数使用此结构。

语法

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

每秒 I/O 操作数中 I/O 速率的最大限制 (IOPS) 。 如果未指定限制,则设置为 0。

同时设置 MaxIopsMaxBandth 时,操作系统将强制实施 I/O 速率达到的第一个限制。

MaxBandwidth

I/O 速率的最大限制(以字节/秒为单位)。 设置为 0 可指定无限制。

设置 MaxBandwithMaxIops 时,操作系统将强制实施 I/O 速率达到的第一个限制。

ReservationIops

设置操作系统为作业保留的最低 I/O 速率。 若要不保留作业,请将此值设置为 0。

如果可能,操作系统允许作业以此速率执行 I/O 操作。 如果所有作业的最低速率之和超过操作系统的容量,则操作系统允许每个作业执行 I/O 操作的速率与作业的预留成正比。

VolumeName

要对其应用 I/O 速率策略的卷的 NT 设备名称。 有关 NT 设备名称的信息,请参阅 NT 设备名称

如果此成员为 NULL,则 I/O 速率策略适用于操作系统的所有卷。 例如,如果此成员为 NULLMaxIops 成员为 100,则每个卷的 I/O 速率的最大限制设置为 100 IOPS,而不是为所有卷 100 IOPS 的 I/O 速率设置聚合限制。

BaseIoSize

规范化 I/O 单元的基本大小(以字节为单位)。 例如,如果 BaseIoSize 成员为 8,000,则每 8,000 个字节计为一个 I/O 单位。 在此示例中,4,000 个字节也是一个 I/O 单位,而 8,001 个字节是两个 I/O 单位。

可以使用 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\控件\QoSStorageBaseIOSize 值来设置此基本 I/O 大小的值

注册表项。

BaseIoSize 成员的值受以下约束:

若要在不创建作业的情况下查询规范化 I/O 单元的基本大小,请从不与作业关联的进程中调用将 hJob 参数设置为 NULLQueryIoRateControlInformationJobObject

ControlFlags

用于控制 I/O 速率的策略。 此成员可以是以下值之一。

含义
JOB_OBJECT_IO_RATE_CONTROL_ENABLE
0x1
将此结构传递给 SetIoRateControlInformationJobObject 函数时,打开对作业的 I/O 速率的控制。 指示将此结构与 QueryIoRateControlInformationJobObject 函数一起使用时,将打开作业的 I/O 速率控制。

注解

重要从 Windows 10 版本 1607 开始,不再支持此结构。
 
只能为嵌套作业层次结构中的作业设置一个 I/O 速率控制。 指定的设置适用于该作业和该作业的层次结构中的子作业。 这些设置不适用于从父作业到层次结构顶部的作业链。 仍可以在设置 I/O 速率控制的层次结构中更改原始作业的设置。 但是,尝试为层次结构中的任何其他作业(包括父作业)设置 I/O 速率控制值失败。

要求

   
最低受支持的客户端 Windows 10 [仅限桌面应用]
最低受支持的服务器 Windows Server 2016 [仅限桌面应用]
标头 jobapi2.h

另请参阅

QueryIoRateControlInformationJobObject

SetIoRateControlInformationJobObject