JOBOBJECT_IO_RATE_CONTROL_INFORMATION结构(jobapi2.h)

Windows 10 版本 1607 及更新版本:不支持此结构。

包含用于控制作业的 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。

设置 MaxIopsMaxBandwith时,操作系统将强制实施 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 速率的策略适用于操作系统的所有卷。 例如,如果此成员 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 成员的值受以下约束的约束:

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

ControlFlags

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

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

言论

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

要求

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

另请参阅

QueryIoRateControlInformationJobObject

SetIoRateControlInformationJobObject