JOBOBJECT_IO_RATE_CONTROL_INFORMATION 结构 (jobapi2.h)
包含用于控制作业的 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
每秒 I/O 操作数中 I/O 速率的最大限制 (IOPS) 。 如果未指定限制,则设置为 0。
同时设置 MaxIops 和 MaxBandth 时,操作系统将强制实施 I/O 速率达到的第一个限制。
MaxBandwidth
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 个字节计为一个 I/O 单位。 在此示例中,4,000 个字节也是一个 I/O 单位,而 8,001 个字节是两个 I/O 单位。
可以使用 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\控件\QoS 的 StorageBaseIOSize 值来设置此基本 I/O 大小的值
注册表项。BaseIoSize 成员的值受以下约束:
- SetIoRateControlInformationJobObject 函数要求传递给函数的JOBOBJECT_IO_RATE_CONTROL_INFORMATION结构的 BaseIoSize 成员为 0。
- 如果 VolumeName 成员指定的卷不支持 I/O 速率的控制,QueryIoRateControlInformationJobObject 方法将此结构的 BaseIoSize 成员设置为 0。
- 如果 VolumeName 成员指定的卷支持 I/O 速率的控制,QueryIoRateControlInformationJobObject 方法将此结构的 BaseIoSize 成员设置为规范化 I/O 单元的基大小。
ControlFlags
用于控制 I/O 速率的策略。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
将此结构传递给 SetIoRateControlInformationJobObject 函数时,打开对作业的 I/O 速率的控制。 指示将此结构与 QueryIoRateControlInformationJobObject 函数一起使用时,将打开作业的 I/O 速率控制。 |
注解
要求
最低受支持的客户端 | Windows 10 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2016 [仅限桌面应用] |
标头 | jobapi2.h |