Share via


JOBOBJECT_CPU_RATE_CONTROL_INFORMATION 구조체(winnt.h)

작업 개체에 대한 CPU 속도 제어 정보를 포함합니다. 이 구조체는 JobObjectCpuRateControlInformation 정보 클래스와 함께 SetInformationJobObjectQueryInformationJobObject 함수에서 사용됩니다.

구문

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 속도 제어에 대한 예약 정책입니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

의미
JOB_OBJECT_CPU_RATE_CONTROL_ENABLE
0x1
이 플래그를 사용하면 가중치 또는 하드 캡에 따라 작업의 CPU 속도를 제어할 수 있습니다. JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED, JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP또는JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE 설정하는 경우 이 값을 설정해야 합니다.
JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED
0x2
작업의 CPU 비율은 다른 작업의 가중치에 대한 상대적 가중치를 기준으로 계산됩니다. 이 플래그를 설정하면 Weight 멤버에 자세한 정보가 포함됩니다. 이 플래그가 명확하면 CpuRate 멤버에 자세한 정보가 포함됩니다.

JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED 설정하면 JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE 설정할 수도 없습니다.

JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP
0x4
작업의 CPU 속도는 하드 제한입니다. 작업이 현재 일정 간격에 대한 CPU 주기 제한에 도달하면 작업과 연결된 스레드는 다음 간격까지 실행되지 않습니다.

JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP 설정하면 JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE 설정할 수도 없습니다.

JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY
0x8
작업의 CPU 속도가 허용 오차 간격 동안 작업의 속도 제한을 초과할 때 메시지를 보냅니다.
JOB_OBJECT_ CPU_RATE_CONTROL_MIN_MAX_RATE
0x10
작업에 대한 CPU 속도는 MinRateMaxRate 멤버에 지정한 최소 및 최대 속도로 제한됩니다.

JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE 설정하면 JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED 또는 JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP 설정할 수 없습니다.

DUMMYUNIONNAME

DUMMYUNIONNAME.CpuRate

작업 개체의 스레드가 각 일정 간격 동안 사용할 수 있는 프로세서 주기의 부분을 10,000주기당 주기 수로 지정합니다. ControlFlags 멤버가 JOB_OBJECT_CPU_RATE_WEIGHT_BASED 또는 JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE 지정하는 경우 이 멤버는 사용되지 않습니다.

CpuRate를 백분율 시간 100으로 설정합니다. 예를 들어 작업에서 CPU의 20%를 사용하도록 하려면 CpuRate 를 20배 100 또는 2,000으로 설정합니다.

CpuRate를 0으로 설정하지 마세요. CpuRate가 0이면 SetInformationJobObjectINVALID_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을 지정합니다.

최소 요금이 올바르게 작동하려면 시스템의 모든 작업 개체에 대한 최소 요금 합계가 100%에 해당하는 10,000을 초과할 수 없습니다.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MaxRate

작업 개체의 스레드가 각 일정 간격 동안 사용할 수 있는 프로세서 주기의 최대 부분을 지정합니다. 이 비율을 백분율 시간 100으로 지정합니다. 예를 들어 최대 속도를 50%로 설정하려면 50배 100 또는 5,000을 지정합니다.

작업이 일정 간격에 대해 이 제한에 도달하면 작업과 연결된 스레드는 다음 일정 간격까지 실행할 수 없습니다.

설명

중첩된 작업의 계층 구조에서 여러 작업에 대한 CPU 속도 제어를 설정할 수 있습니다. 작업 개체에 대한 CPU 속도 제어를 설정하면 설정이 계층 구조의 작업 및 해당 자식 작업에 적용됩니다. 중첩된 계층 구조에서 작업에 대한 CPU 속도 제어를 설정하면 시스템은 작업에 대한 직계 부모 작업의 CPU 속도 제어와 관련하여 해당 할당량을 계산합니다. 즉, 작업에 대해 설정된 속도는 부모 작업에 할당된 CPU 속도의 해당 부분을 나타냅니다. 부모 작업 체인에서 CPU 속도 컨트롤이 켜져 있는 부모 개체가 작업 개체에 없는 경우 작업의 속도 제어는 전체 시스템의 CPU 부분을 나타냅니다.

DFSS(Dynamic Fair Share Scheduling)가 적용되는 경우 원격 데스크톱 서비스 (이전의 터미널 서비스)에서 실행되는 애플리케이션의 작업 개체에서 CPU 속도 제어를 사용할 수 없습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱만 해당]
머리글 winnt.h

추가 정보

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

QueryInformationJobObject

SetInformationJobObject