Bir veritabanı yöneticisi (DBA) için CPU kullanımı sadece bir yüzdeden ibaret değildir. İşlemcinin zamanını hangi modda harcadığını anlamak, performans darboğazının kaynağını (yazılımsal sorgu hataları mı yoksa donanımsal/işletim sistemi seviyesindeki sorunlar mı) tespit etmek için kritiktir.
1. User Time (% User Time)
Bu değer, işlemcinin SQL Server’ın kendi kodlarını (sorgu işleme, sıralama, hesaplama vb.) çalıştırmak için harcadığı süreyi ifade eder.
- Analiz: Değerin yüksek olması, SQL Server’ın aktif olarak “iş yaptığını” gösterir. Genelde sağlıklı bir sistemde CPU kullanımının büyük çoğunluğu burada olmalıdır.
- Çok Yüksekse: Eksik indeksler, optimize edilmemiş karmaşık sorgular veya yoğun veri işleme süreçlerine işaret eder.
2. Privileged Time (% Privileged Time / Kernel Mode)
Bu değer, işlemcinin işletim sistemi çekirdeği (kernel) seviyesindeki işlemler için harcadığı süreyi gösterir. Girdi/Çıktı (I/O) işlemleri, bellek yönetimi ve ağ trafiği bu kategoriye girer.
- Analiz: Normal şartlarda bu değerin toplam CPU kullanımına oranı %10-%15’i geçmemelidir.
- Çok Yüksekse: Sürücü (driver) sorunları, aşırı disk I/O beklemeleri, ağ kartı hataları veya donanım kesintileri (interrupts) kontrol edilmelidir.
Aşağıdaki komut ile sql server çalışan sunucu üzerinde anlık değerleri rahatlıkla gözlemleyebiliriz.
$serverName = $env:COMPUTERNAME
$Counters = @(
("\\$serverName" + "\Process(sqlservr*)\% User Time"), ("\\$serverName" + "\Process(sqlservr*)\% Privileged Time")
)
Get-Counter -Counter $Counters -MaxSamples 30 | ForEach {
$_.CounterSamples | ForEach {
[pscustomobject]@{
TimeStamp = $_.TimeStamp
Path = $_.Path
Value = ([Math]::Round($_.CookedValue, 3))
}
Start-Sleep -s 2
}
}

Yukarıdaki çıktıyı bir txt uzantısına kaydedip gözlemleme yapılabilir.
Pratik Analiz Tablosu
| Durum | Olası Neden | Önerilen Aksiyon |
| Yüksek User / Düşük Privileged | Ağır sorgu yükü. | Sorgu optimizasyonu ve indeksleme. |
| Düşük User / Yüksek Privileged | OS veya Donanım darboğazı. | Disk gecikmesi (latency) ve sürücü kontrolü. |
| Her ikisi de yüksek | Genel kapasite yetersizliği. | CPU artırımı veya yük dengeleme. |
Yukarıda bulunan komutta gelen değerler (örneğin 11696,704) genellikle milisaniye cinsinden kümülatif çalışma süresini veya örnekleme anındaki yoğunluğu ifade eder. İki zaman damgası (TimeStamp) arasındaki farka bakarak, o 5 saniyelik dilimde CPU’nun ne kadar kullanıldığını anlayabilirsiniz.
Başka makalede görüşmek dileğiyle..
Alçak gönüllü şekilde yürüyün. Furkan-63
