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
每秒 I/O 操作中 I/O 速率的最大限制(IOPS)。 如果指定没有限制,则设置为 0。
设置 MaxIops 和 MaxBandwith时,操作系统将强制实施 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\Control\QoSStorageBaseIOSize 值来设置此基 I/O 大小的值
注册表项。BaseIoSize 成员的值受以下约束的约束:
- SetIoRateControlInformationJobObject 函数要求传递给函数的 JOBOBJECT_IO_RATE_CONTROL_INFORMATION 结构的 BaseIoSize 成员为 0。
- QueryIoRateControlInformationJobObject 方法将此结构的 BaseIoSize 成员设置为 0(如果 VolumeName 成员指定的卷不支持 I/O 速率的控制)。
- QueryIoRateControlInformationJobObject 方法将此结构的 BaseIoSize 成员设置为规范化 I/O 单位的基本大小(如果 VolumeName 成员指定的卷支持 I/O 速率的控制)。
ControlFlags
控制 I/O 速率的策略。 此成员可以是以下值之一。
价值 | 意义 |
---|---|
|
当将此结构传递给 SetIoRateControlInformationJobObject 函数时,打开对作业的 I/O 速率的控制。 指示当此结构与 QueryIoRateControlInformationJobObject 函数一起使用时,将打开对作业的 I/O 速率的控制。 |
言论
只能在嵌套作业层次结构中为作业设置一个 I/O 速率控制。 指定的设置适用于该作业的层次结构中的作业和子作业。 这些设置不适用于从父作业到层次结构顶部的作业链。 仍可以在设置 I/O 速率控件的层次结构中更改原始作业的设置。 但是,尝试为层次结构中任何其他作业(包括父作业)控制 I/O 速率设置值失败。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 [仅限桌面应用] |
支持的最低服务器 | Windows Server 2016 [仅限桌面应用] |
标头 | jobapi2.h |