winnt.h) (JOBOBJECT_CPU_RATE_CONTROL_INFORMATION 結構
包含作業物件的CPU速率控制資訊。 SetInformationJobObject 和 QueryInformationJobObject 函式會使用這個結構與 JobObjectCpuRateControlInformation 資訊類別。
語法
typedef struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
DWORD ControlFlags;
union {
DWORD CpuRate;
DWORD Weight;
struct {
WORD MinRate;
WORD MaxRate;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, *PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION;
成員
ControlFlags
CPU 速率控制的排程原則。 這個成員可以是下列其中一個值。
DUMMYUNIONNAME
DUMMYUNIONNAME.CpuRate
指定作業物件中線程可以在每個排程間隔期間使用的處理器週期部分,做為每 10,000 個週期的週期數目。 如果 ControlFlags 成員指定 JOB_OBJECT_CPU_RATE_WEIGHT_BASED 或 JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE,則不會使用此成員。
將 CpuRate 設定為 100 的百分比。 例如,若要讓作業使用 20% 的 CPU,請將 CpuRate 設定為 20 倍 100 或 2,000。
請勿將 CpuRate 設定為 0。 如果 CpuRate 為 0,SetInformationJobObject 會傳回 INVALID_ARGS。
DUMMYUNIONNAME.Weight
如果 ControlFlags 成員指定 JOB_OBJECT_CPU_RATE_WEIGHT_BASED,此成員會指定作業物件的排程權數,這會決定相對於處理器上其他工作負載提供給作業的處理器時間共用。
這個成員可以是從 1 到 9 的值,其中 1 是最小共用,而 9 是最大的共用。 默認值為 5,應該用於大部分的工作負載。
如果 ControlFlags 成員指定 JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE,則不會使用此成員。
DUMMYUNIONNAME.DUMMYSTRUCTNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MinRate
指定作業物件中線程在每個排程間隔期間可以保留的處理器週期下限部分。 將此速率指定為百分比 100。 例如,若要設定最小速率 50%,請指定 50 倍 100 或 5,000。
若要讓最小速率正確運作,系統中所有工作物件之最小速率的總和不能超過 10,000,這相當於 100%。
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MaxRate
指定每個排程間隔期間,作業物件中線程可以使用的處理器週期上限。 將此速率指定為百分比 100。 例如,若要設定最大速率 50%,請指定 50 倍 100 或 5,000。
在作業達到排程間隔的這個限制之後,與作業相關聯的線程將無法執行,直到下一個排程間隔為止。
備註
您可以在巢狀作業階層中設定多個作業的 CPU 速率控制。 當您設定作業物件的CPU速率控制時,這些設定會套用至階層中的作業及其子作業。 當您在巢狀階層中設定作業的CPU速率控制時,系統會針對作業的立即父作業計算對應的配額。 換句話說,為作業設定的速率代表其配置給父作業的CPU速率部分。 如果作業物件在其父作業鏈結中沒有開啟 CPU 速率控制的父代,作業的速率控制代表整個系統的 CPU 部分。
如果動態公平共用排程 (DFSS) 有效,在 遠端桌面服務 (先前稱為終端機服務) 下執行的應用程式中,無法使用 CPU 速率控制。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
標頭 | winnt.h |