Bagaimana perfmon "% Prosesor Waktu" dapat mengatasi lebih dari 100%?

9

Penghitung,, Process(sqlservr)\% Processor Timemelayang sekitar 300% di salah satu server basis data saya. Penghitung ini mencerminkan persentase total waktu yang dihabiskan SQL Server untuk berjalan pada CPU (mode pengguna + mode privilege). Buku itu, Sql Server 2008 Internal dan Pemecahan Masalah , mengatakan bahwa apa pun yang lebih besar dari 80% adalah masalah.

Bagaimana mungkin penghitung itu lebih dari 100%?

Bill Paetzke
sumber

Jawaban:

21

Ada dua penghitung dengan nama yang sama:

Process\% Processor Time: Jumlah waktu prosesor pada setiap prosesor

Processor(_Total)\% Processor Time: Total untuk semua prosesor

Pertanyaan Anda menunjukkan Anda menggunakan penghitung pertama, yang berarti bahwa nilai maksimumnya adalah 100% * (tidak ada CPU).

Jadi jika Anda memiliki 4 CPU, maka total maksimum adalah 400%, dan 80% sebenarnya (400 * 0,8 =) 320% (dan untuk 8 CPU itu 640%, dll.)

Mark Henderson
sumber
Ya! Itu dia. Saya memiliki 8 CPU. Jadi penggunaan CPU total sqlservr saya sebenarnya sekitar 37%. Dan itu berarti semuanya normal. Terima kasih, @Farseeker!
Bill Paetzke
Kapan saja Saya memiliki pertanyaan serupa ketika saya mulai menggunakan perfmon pada sistem multi-cpu.
Mark Henderson
2
Apakah jumlah CPU termasuk hyperthreading? Sebagai contoh, jika komputer saya adalah quad core dan saya mengalami hyperthreading, haruskah saya memperhitungkan 4 procs atau 8?
Matius Rodatus
1
Apakah ada cara untuk menemukan penggunaan prosesor dari satu proses dengan nilai antara 0 dan 100% (alias: ini menunjukkan Anda spread load di semua CPU)? Saya lebih suka untuk tidak melakukan pembagian sendiri
Jeroen Vannevel
0

Nilai ini dihitung melalui garis dasar (No of Logical CPUS * 100), Jadi ini akan dihitung lebih dari baselin lebih dari 100.

Mahesh kumar Chiliveri
sumber