Problem neden önemlidir?
Sürekli yüksek CPU, pahalı sorguların, aşırı derlemenin veya eşzamanlı iş yükünün belirtisi olabilir. Yalnızca işletim sistemi yüzdesi, SQL Server içindeki hangi çalışmanın baskıyı oluşturduğunu açıklamaz.
Nasıl teşhis edilir?
Çevrimiçi scheduler'ların runnable_tasks_count ve active_workers_count değerlerini zaman içinde örnekleyin. Aynı zaman aralığında CPU tüketen sorguları, paralellik davranışını ve derleme etkinliğini ilişkilendirin.
Sorgu çevrimiçi görünür scheduler'ların anlık durumunu okur. Tek örnekteki çalıştırılabilir görev sayısı tanı koymaz; süreklilik ve sorgu kanıtı gerekir.
SELECT parent_node_id,
scheduler_id,
current_tasks_count,
runnable_tasks_count,
current_workers_count,
active_workers_count,
work_queue_count,
load_factor
FROM sys.dm_os_schedulers
WHERE status = 'VISIBLE ONLINE'
ORDER BY runnable_tasks_count DESC, scheduler_id;Güvenli çözüm yaklaşımı
En yüksek toplam veya yürütme başına CPU kullanan doğrulanmış sorgularla başlayın. Donanım ya da paralellik ayarı değişikliği, sorgu planları ve kapasite gereksinimi ölçüldükten sonra değerlendirilmelidir.
Sürekli monitoring neden gerekir?
CPU baskısı iş yükü zirveleriyle sınırlı olabilir ve ortalamalarda görünmeyebilir. moon düşük ek yükle eğilimleri izleyebilir ve kalıcı baskıyı Slack, PagerDuty veya webhook üzerinden bildirebilir.
Sık sorulan sorular
Yüzde yüz CPU her zaman SQL Server sorunu mudur? Yüksek runnable_tasks_count tek başına işlemci eklemeyi gerektirir mi?
Hayır, sunucudaki diğer süreçler de CPU tüketebilir ve kısa zirveler kabul edilebilir olabilir. Kuyruk kalıcı olmalı ve pahalı sorgu ya da kapasite kanıtlarıyla birlikte yorumlanmalıdır.
moon bu konuda nasıl yardımcı olur?
moon, SQL Server, PostgreSQL ve MongoDB sinyallerini sürekli izleyerek problemi anlık bir kontrolden ziyade zaman içindeki davranışıyla değerlendirmeye yardımcı olur.