Apa yang setara dengan "rata-rata beban" di Windows yang tersedia melalui WMI?

10

Linux memiliki gagasan Load Average yang didefinisikan sebagai:

Rata-rata beban sistem adalah jumlah rata-rata proses yang berada dalam kondisi runnable atau uninterruptable. Proses dalam kondisi runnable adalah menggunakan CPU atau menunggu untuk menggunakan CPU. Proses dalam keadaan tanpa gangguan sedang menunggu beberapa akses I / O, misalnya menunggu disk. Rata-rata diambil selama tiga interval waktu. Rata-rata beban tidak dinormalisasi untuk jumlah CPU dalam suatu sistem, sehingga rata-rata beban 1 berarti sistem CPU tunggal dimuat sepanjang waktu sedangkan pada sistem 4 CPU itu berarti idle 75% dari waktu.

Apa yang setara terdekat tersedia melalui WMI? Pada dasarnya apakah ada perbedaan antara kedua OS yang menentukan bagaimana metrik kinerja harus diukur? Apa perbedaannya?

leonigmig
sumber

Jawaban:

9

The Process Queue Lengthcount dari Systemobjek kinerja counter:

Panjang Antrian Prosesor adalah jumlah utas dalam antrian prosesor [...]

Nilai ini tersedia dalam WMI via Win32_PerfFormattedData_PerfOS_System.

Richard
sumber
Menggali sedikit jawaban ini stackoverflow.com/questions/807506/… tampaknya memberikan pandangan yang baik tentang perbedaan antara OS.
leonigmig
1
Mengganggu, "Properti ini hanya menampilkan nilai yang diamati terakhir; ini bukan rata-rata." : - |
Blaisorblade
Panjang Antrian Proses hanya mewakili jumlah proses yang menunggu CPU. Itu tidak menunjukkan proses menunggu disk I / O atau Network I / O. Namun, mitra linux mempertimbangkan proses dalam kondisi tidur tidak terputus juga dalam perhitungan bebannya. Proses dalam keadaan ini menunjukkan bahwa mereka sedang menunggu semacam I / O.
Amit Bhaira
4

Saya tidak tahu ukuran seperti apa dari permintaan kerja keseluruhan, itu hanya persen-CPU dengan beberapa gangguan dalam jenis CPU yang diminta. Ini membuat sulit untuk mengetahui seberapa kelebihan mesin. Ketika sistem Linux melaporkan Load Average of 63 dan sistem Windows melaporkan 100% CPU ... yah, keduanya berjalan habis, tetapi hanya itu yang dapat Anda katakan tentang sistem Windows.

sysadmin1138
sumber
3

Saya tidak yakin bahwa ada sesuatu di windows yang setara, dan saya tidak yakin itu akan berarti apa-apa jika ada. Dari uraian saya tidak bisa melihat bagaimana suatu proses akan gagal untuk dimasukkan karena bahkan proses yang digantung atau ditangguhkan akan mendapatkan waktu CPU dialokasikan. Selain itu, lebih relevan untuk melihat utas dan utas yang dapat dijalankan daripada proses di bawah windows untuk menentukan gagasan beban menurut definisi yang disediakan.

Jim B
sumber
0

Anda bisa mendapatkan CPU load instan sebagai persentase dengan perintah ini:

wmic cpu get loadpercentage

Yang mengembalikan:

LoadPercentage
10

Sayangnya, saya tidak melihat waktu rata-rata dari wmic cpu get, yang akan menyenangkan.

Mike T
sumber
1
Ini hanya persentase penggunaan CPU selama periode pengambilan sampel terakhir, ini tidak memiliki kesamaan dengan "rata-rata beban".
GreyCat
0

Jika Anda menggunakan Python, psutil mengemulasi getloadavg () pada Windows melalui Panjang Antrian Prosesor:

 >>> import psutil
 >>> psutil.getloadavg()
 (3.14, 3.89, 4.67)

PR menunjukkan bagaimana hal ini dilakukan: https://github.com/giampaolo/psutil/pull/1485

Giampaolo Rodolà
sumber