Freigeben über


JOBOBJECT_CPU_RATE_CONTROL_INFORMATION-Struktur (winnt.h)

Enthält CPU-Ratensteuerungsinformationen für ein Auftragsobjekt. Diese Struktur wird von den Funktionen SetInformationJobObject und QueryInformationJobObject mit der Informationsklasse JobObjectCpuRateControlInformation verwendet.

Syntax

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;

Member

ControlFlags

Die Planungsrichtlinie für die CPU-Ratensteuerung. Dieser Member kann einer der folgenden Werte sein.

Wert Bedeutung
JOB_OBJECT_CPU_RATE_CONTROL_ENABLE
0x1
Dieses Flag ermöglicht es, die CPU-Rate des Auftrags basierend auf der Gewichtung oder der harten Obergrenze zu steuern. Sie müssen diesen Wert festlegen, wenn Sie auch JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED, JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP oder JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE festlegen.
JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED
0x2
Die CPU-Rate des Auftrags wird basierend auf der relativen Gewichtung anderer Aufträge berechnet. Wenn dieses Flag festgelegt ist, enthält das Element Gewichtung weitere Informationen. Wenn dieses Flag eindeutig ist, enthält das CpuRate-Element weitere Informationen.

Wenn Sie JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED festlegen, können Sie nicht auch JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE festlegen.

JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP
0x4
Die CPU-Rate des Auftrags ist ein hartes Limit. Nachdem der Auftrag sein CPU-Zykluslimit für das aktuelle Planungsintervall erreicht hat, werden bis zum nächsten Intervall keine Threads ausgeführt, die dem Auftrag zugeordnet sind.

Wenn Sie JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP festlegen, können Sie nicht auch JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE festlegen.

JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY
0x8
Sendet Nachrichten, wenn die CPU-Rate für den Auftrag die Ratenlimits für den Auftrag während des Toleranzintervalls überschreitet.
JOB_OBJECT_ CPU_RATE_CONTROL_MIN_MAX_RATE
0x10
Die CPU-Rate für den Auftrag ist durch minimale und maximale Raten begrenzt, die Sie in den Membern MinRate und MaxRate angeben.

Wenn Sie JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE festlegen, können Sie weder JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED noch JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP festlegen.

DUMMYUNIONNAME

DUMMYUNIONNAME.CpuRate

Gibt den Teil der Prozessorzyklen an, den die Threads in einem Auftragsobjekt während jedes Planungsintervalls verwenden können, als Anzahl der Zyklen pro 10.000 Zyklen. Wenn das ControlFlags-ElementJOB_OBJECT_CPU_RATE_WEIGHT_BASED oder JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE angibt, wird dieses Element nicht verwendet.

Legen Sie CpuRate auf einen Prozentsatz mal 100 fest. Damit der Auftrag beispielsweise 20 % der CPU verwendet, legen Sie CpuRate auf 20 mal 100 oder 2.000 fest.

Legen Sie CpuRate nicht auf 0 fest. Wenn CpuRate 0 ist, gibt SetInformationJobObjectINVALID_ARGS zurück.

DUMMYUNIONNAME.Weight

Wenn der ControlFlags-MemberJOB_OBJECT_CPU_RATE_WEIGHT_BASED angibt, gibt dieses Element die Planungsgewichtung des Auftragsobjekts an, das den Anteil der Prozessorzeit bestimmt, die dem Auftrag im Verhältnis zu anderen Workloads auf dem Prozessor zugewiesen wird.

Dieses Element kann ein Wert von 1 bis 9 sein, wobei 1 die kleinste Und 9 der größte Anteil ist. Der Standardwert ist 5. Dies sollte für die meisten Workloads verwendet werden.

Wenn das ControlFlags-ElementJOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE angibt, wird dieser Member nicht verwendet.

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MinRate

Gibt den Mindestanteil der Prozessorzyklen an, den die Threads in einem Auftragsobjekt während jedes Planungsintervalls reservieren können. Geben Sie diesen Satz als Prozentsatz mal 100 an. Um beispielsweise einen Mindestsatz von 50 % festzulegen, geben Sie 50 mal 100 oder 5.000 an.

Damit die Mindestsätze ordnungsgemäß funktionieren, darf die Summe der Mindestsätze für alle Auftragsobjekte im System nicht mehr als 10.000 betragen, was 100 % entspricht.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MaxRate

Gibt den maximalen Anteil der Prozessorzyklen an, den die Threads in einem Auftragsobjekt während jedes Planungsintervalls verwenden können. Geben Sie diesen Satz als Prozentsatz mal 100 an. Um beispielsweise eine maximale Rate von 50 % festzulegen, geben Sie 50 mal 100 oder 5.000 an.

Nachdem der Auftrag dieses Limit für ein Planungsintervall erreicht hat, können bis zum nächsten Planungsintervall keine dem Auftrag zugeordneten Threads ausgeführt werden.

Hinweise

Sie können die CPU-Ratensteuerung für mehrere Aufträge in einer Hierarchie geschachtelter Aufträge festlegen. Wenn Sie die CPU-Ratensteuerung für ein Auftragsobjekt festlegen, gelten die Einstellungen für den Auftrag und die untergeordneten Aufträge in der Hierarchie. Wenn Sie die CPU-Ratensteuerung für einen Auftrag in einer geschachtelten Hierarchie festlegen, berechnet das System die entsprechenden Kontingente in Bezug auf die CPU-Ratensteuerung des unmittelbar übergeordneten Auftrags für den Auftrag. Anders ausgedrückt: Die für den Auftrag festgelegten Raten stellen den Teil der CPU-Rate dar, der dem übergeordneten Auftrag zugeordnet wird. Wenn für ein Auftragsobjekt kein übergeordnetes Objekt mit aktivierter CPU-Ratensteuerung in der Kette seiner übergeordneten Aufträge vorhanden ist, stellt das Ratensteuerelement für den Auftrag den Teil der CPU für das gesamte System dar.

Die CPU-Ratensteuerung kann nicht von Auftragsobjekten in Anwendungen verwendet werden, die unter Remotedesktopdienste (früher Terminaldienste) ausgeführt werden, wenn die dynamische Terminplanung für faire Freigaben (DFSS) aktiviert ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Kopfzeile winnt.h

Weitere Informationen

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

QueryInformationJobObject

SetInformationJobObject