Bagikan melalui


struktur JOBOBJECT_CPU_RATE_CONTROL_INFORMATION (winnt.h)

Berisi informasi kontrol laju CPU untuk objek pekerjaan. Struktur ini digunakan oleh fungsi SetInformationJobObject dan QueryInformationJobObject dengan kelas informasi JobObjectCpuRateControlInformation .

Sintaks

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;

Anggota

ControlFlags

Kebijakan penjadwalan untuk kontrol laju CPU. Anggota ini bisa menjadi salah satu nilai berikut.

Nilai Makna
JOB_OBJECT_CPU_RATE_CONTROL_ENABLE
0x1
Bendera ini memungkinkan tingkat CPU pekerjaan dikontrol berdasarkan berat atau tutup keras. Anda harus mengatur nilai ini jika Anda juga mengatur JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED, JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP, atau JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.
JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED
0x2
Tingkat CPU pekerjaan dihitung berdasarkan bobot relatifnya terhadap berat pekerjaan lain. Jika bendera ini diatur, anggota Berat berisi informasi lebih lanjut. Jika bendera ini jelas, anggota CpuRate berisi informasi lebih lanjut.

Jika Anda mengatur JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED, Anda juga tidak dapat mengatur JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.

JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP
0x4
Tingkat CPU pekerjaan adalah batas keras. Setelah pekerjaan mencapai batas siklus CPU untuk interval penjadwalan saat ini, tidak ada utas yang terkait dengan pekerjaan yang akan berjalan hingga interval berikutnya.

Jika Anda mengatur JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP, Anda juga tidak dapat mengatur JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE.

JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY
0x8
Mengirim pesan ketika tingkat CPU untuk pekerjaan melebihi batas tarif untuk pekerjaan selama interval toleransi.
JOB_OBJECT_ CPU_RATE_CONTROL_MIN_MAX_RATE
0x10
Tingkat CPU untuk pekerjaan dibatasi oleh tarif minimum dan maksimum yang Anda tentukan di anggota MinRate dan MaxRate .

Jika Anda mengatur JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, Anda tidak dapat mengatur JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED atau JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP.

DUMMYUNIONNAME

DUMMYUNIONNAME.CpuRate

Menentukan bagian siklus prosesor yang dapat digunakan utas dalam objek pekerjaan selama setiap interval penjadwalan, sebagai jumlah siklus per 10.000 siklus. Jika anggota ControlFlags menentukan JOB_OBJECT_CPU_RATE_WEIGHT_BASED atau JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, anggota ini tidak digunakan.

Atur CpuRate ke persentase kali 100. Misalnya, untuk membiarkan pekerjaan menggunakan 20% dari CPU, atur CpuRate ke 20 kali 100, atau 2.000.

Jangan atur CpuRate ke 0. Jika CpuRate adalah 0, SetInformationJobObject mengembalikan INVALID_ARGS.

DUMMYUNIONNAME.Weight

Jika anggota ControlFlags menentukan JOB_OBJECT_CPU_RATE_WEIGHT_BASED, anggota ini menentukan bobot penjadwalan objek pekerjaan, yang menentukan berbagi waktu prosesor yang diberikan untuk pekerjaan relatif terhadap beban kerja lain pada prosesor.

Anggota ini dapat menjadi nilai dari 1 hingga 9, di mana 1 adalah bagian terkecil dan 9 adalah berbagi terbesar. Defaultnya adalah 5, yang harus digunakan untuk sebagian besar beban kerja.

Jika anggota ControlFlags menentukan JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE, anggota ini tidak digunakan.

DUMMYUNIONNAME.DUMMYSTRUCTNAME

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MinRate

Menentukan bagian minimum siklus prosesor yang dapat dicadangkan utas dalam objek pekerjaan selama setiap interval penjadwalan. Tentukan tarif ini sebagai persentase kali 100. Misalnya, untuk menetapkan tingkat minimum 50%, tentukan 50 kali 100, atau 5.000.

Agar tarif minimum berfungsi dengan benar, jumlah tarif minimum untuk semua objek pekerjaan dalam sistem tidak boleh melebihi 10.000, yang setara dengan 100%.

DUMMYUNIONNAME.DUMMYSTRUCTNAME.MaxRate

Menentukan bagian maksimum siklus prosesor yang dapat digunakan utas dalam objek pekerjaan selama setiap interval penjadwalan. Tentukan tarif ini sebagai persentase kali 100. Misalnya, untuk menetapkan tingkat maksimum 50%, tentukan 50 kali 100, atau 5.000.

Setelah pekerjaan mencapai batas ini untuk interval penjadwalan, tidak ada utas yang terkait dengan pekerjaan yang dapat berjalan hingga interval penjadwalan berikutnya.

Keterangan

Anda dapat mengatur kontrol laju CPU untuk beberapa pekerjaan dalam hierarki pekerjaan berlapis. Saat Anda mengatur kontrol laju CPU untuk objek pekerjaan, pengaturan berlaku untuk pekerjaan dan pekerjaan turunannya dalam hierarki. Saat Anda mengatur kontrol laju CPU untuk pekerjaan dalam hierarki berlapis, sistem menghitung kuota yang sesuai sehubungan dengan kontrol laju CPU dari pekerjaan induk langsung untuk pekerjaan tersebut. Dengan kata lain, tarif yang ditetapkan untuk pekerjaan mewakili bagian dari tingkat CPU yang dialokasikan untuk pekerjaan induknya. Jika objek pekerjaan tidak memiliki induk dengan kontrol laju CPU yang diaktifkan dalam rantai pekerjaan induknya, kontrol laju untuk pekerjaan mewakili bagian CPU untuk seluruh sistem.

Kontrol laju CPU tidak dapat digunakan oleh objek pekerjaan dalam aplikasi yang berjalan di bawah Layanan Desktop Jauh (sebelumnya Layanan Terminal) jika Dynamic Fair Share Scheduling (DFSS) berlaku.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 [khusus aplikasi desktop]
Server minimum yang didukung Windows Server 2012 [hanya aplikasi desktop]
Header winnt.h

Lihat juga

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

QueryInformationJobObject

SetInformationJobObject