Partager via


JOBOBJECT_CPU_RATE_CONTROL_INFORMATION structure (winnt.h)

Contient des informations de contrôle de débit processeur pour un objet de travail. Cette structure est utilisée par les fonctions SetInformationJobObject et QueryInformationJobObject avec la classe d’informations JobObjectCpuRateControlInformation .

Syntaxe

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;

Membres

ControlFlags

Stratégie de planification pour le contrôle du débit du processeur. Ce membre peut être l’une des valeurs suivantes.

Valeur Signification
JOB_OBJECT_CPU_RATE_CONTROL_ENABLE
0x1
Cet indicateur permet de contrôler le taux d’UC du travail en fonction du poids ou de la limite matérielle. Vous devez définir cette valeur si vous définissez également JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED, JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP ou JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.
JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED
0x2
Le taux de processeur du travail est calculé en fonction de son poids relatif par rapport à celui des autres travaux. Si cet indicateur est défini, le membre Weight contient plus d’informations. Si cet indicateur est clair, le membre CpuRate contient plus d’informations.

Si vous définissez JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED, vous ne pouvez pas également définir JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.

JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP
0x4
Le taux de processeur du travail est une limite stricte. Une fois que le travail a atteint sa limite de cycle de processeur pour l’intervalle de planification actuel, aucun thread associé au travail ne s’exécute jusqu’à l’intervalle suivant.

Si vous définissez JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP, vous ne pouvez pas également définir JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.

JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY
0x8
Envoie des messages lorsque le taux d’uc de la tâche dépasse les limites de débit pour le travail pendant l’intervalle de tolérance.
JOB_OBJECT_ CPU_RATE_CONTROL_MIN_MAX_RATE
0x10
Le taux d’utilisation du processeur pour le travail est limité par les taux minimum et maximal que vous spécifiez dans les membres MinRate et MaxRate .

Si vous définissez JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, vous ne pouvez définir ni JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED ni JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP.

DUMMYUNIONNAME

DUMMYUNIONNAME.CpuRate

Spécifie la partie des cycles de processeur que les threads d’un objet de travail peuvent utiliser pendant chaque intervalle de planification, en tant que nombre de cycles par 10 000 cycles. Si le membre ControlFlags spécifie JOB_OBJECT_CPU_RATE_WEIGHT_BASED ou JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, ce membre n’est pas utilisé.

Définissez CpuRate sur un pourcentage fois 100. Par exemple, pour permettre au travail d’utiliser 20 % du processeur, définissez CpuRate sur 20 fois 100 ou 2 000.

Ne définissez pas CpuRate sur 0. Si CpuRate a la valeur 0, SetInformationJobObject retourne INVALID_ARGS.

DUMMYUNIONNAME.Weight

Si le membre ControlFlags spécifie JOB_OBJECT_CPU_RATE_WEIGHT_BASED, ce membre spécifie le poids de planification de l’objet de travail, qui détermine le partage du temps processeur accordé au travail par rapport aux autres charges de travail sur le processeur.

Ce membre peut être une valeur comprise entre 1 et 9, où 1 est la plus petite part et 9 la plus grande. La valeur par défaut est 5, qui doit être utilisée pour la plupart des charges de travail.

Si le membre ControlFlags spécifie JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, ce membre n’est pas utilisé.

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MinRate

Spécifie la partie minimale des cycles de processeur que les threads d’un objet de travail peuvent réserver pendant chaque intervalle de planification. Spécifiez ce taux en pourcentage fois 100. Par exemple, pour définir un taux minimal de 50 %, spécifiez 50 fois 100 ou 5 000.

Pour que les taux minimaux fonctionnent correctement, la somme des taux minimaux pour tous les objets de travail dans le système ne peut pas dépasser 10 000, soit l’équivalent de 100 %.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MaxRate

Spécifie la partie maximale des cycles de processeur que les threads d’un objet de travail peuvent utiliser pendant chaque intervalle de planification. Spécifiez ce taux en pourcentage fois 100. Par exemple, pour définir un taux maximal de 50 %, spécifiez 50 fois 100 ou 5 000.

Une fois que le travail a atteint cette limite pour un intervalle de planification, aucun thread associé au travail ne peut s’exécuter jusqu’à l’intervalle de planification suivant.

Remarques

Vous pouvez définir le contrôle de débit processeur pour plusieurs travaux dans une hiérarchie de travaux imbriqués. Lorsque vous définissez le contrôle de débit processeur pour un objet de travail, les paramètres s’appliquent au travail et à ses travaux enfants dans la hiérarchie. Lorsque vous définissez le contrôle de débit processeur pour un travail dans une hiérarchie imbriquée, le système calcule les quotas correspondants par rapport au contrôle de débit processeur du travail parent immédiat pour le travail. En d’autres termes, les taux définis pour le travail représentent sa partie du taux d’uc alloué à son travail parent. Si un objet de travail n’a pas de parent avec le contrôle de débit processeur activé dans la chaîne de ses travaux parents, le contrôle de débit pour le travail représente la partie du processeur pour l’ensemble du système.

Le contrôle de débit processeur ne peut pas être utilisé par les objets de travail dans les applications s’exécutant sous services Bureau à distance (anciennement Terminal Services) si la planification dynamique de partage équitable (DFSS) est appliquée.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
En-tête winnt.h

Voir aussi

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

QueryInformationJobObject

SetInformationJobObject