Server with a dial pushed to the limit and a warning sign, representing the SQL Server priority boost setting

SQL Server Priority Boost: Neden Açılmamalı ve Nasıl Kapatılır?

Kullanımdan kaldırılan SQL Server priority boost ayarının ne yaptığı, Microsoft’un neden performans için gerekmediğini söylediği, nasıl kontrol edilip kapatılacağı ve diğer varsayılan dışı ayarların incelenmesi.

Mart 2, 2022

Sunucu özelliklerindeki Boost SQL Server priority kutusu, adı nedeniyle cazip görünür: SQL Server’a “öncelik vermek” performansı artırmalı gibi gelir. Gerçekte bu ayar, Microsoft’un kullanımdan kaldırmayı planladığı, performans ayarı için gerekli olmadığını açıkça belirttiği ve yanlış koşullarda sunucunun kararlılığını bozabilen eski bir seçenektir.

Bu yazıda priority boost’un ne yaptığını, neden kapalı kalması gerektiğini, açıksa nasıl güvenle kapatılacağını ve performans için bunun yerine nelere bakılması gerektiğini anlatıyoruz.

SQL Server Performans Danışmanlığı

Sunucu ayarlarınız sizin için mi çalışıyor?

Aryasoft, varsayılandan farklı tüm sunucu ayarlarını inceler; gereksiz ve riskli olanları temizler, iş yükünüze uygun yapılandırmayı belgeler.

Destek Alın

Priority Boost Ne Yapar?

Varsayılan değeri 0 olan bu ayar, SQL Server sürecinin Windows zamanlayıcısındaki öncelik tabanını belirler. Değer 0 iken SQL Server öncelik tabanı 7 ile, 1 olduğunda ise 13 ile çalışır. Yani SQL Server’ın thread’leri, sunucudaki diğer süreçlerin önüne geçer.

SSMS Server Properties Processors sayfasında Boost SQL Server priority seçeneği

Neden Açılmamalı?

  • Kullanımdan kaldırılıyor: Microsoft bu özelliği gelecekteki bir sürümde kaldıracağını duyurmuştur; yeni yapılandırmalarda kullanılmamalıdır.
  • Performans için gerekli değil: Microsoft’un kendi dokümantasyonu, priority boost’un performans ayarı için gerekmediğini ve yalnızca istisnai durumlarda, örneğin Microsoft destek ekibinin bir performans sorununu incelemesi sırasında kullanılabileceğini belirtir.
  • İşletim sistemini aç bırakabilir: SQL Server yüksek öncelikle çalışırken işletim sisteminin ve ağ katmanının temel işlevleri kaynak bulamayabilir. Sonuç; yavaşlayan uzak masaüstü oturumları, ağ zaman aşımları ve SQL Server’ın düzgün kapanamaması olabilir.
  • Cluster’larda risklidir: Microsoft, failover cluster instance’larda priority boost kullanılmamasını açıkça belirtir. Cluster heartbeat’leri zamanında işlenemezse gereksiz failover’lar yaşanabilir.

Uyarı

Priority boost’u açmak, CPU darboğazını çözmez; yalnızca darboğazın bedelini işletim sistemine ve diğer servislere öder. Sunucu zaten CPU sıkıntısındaysa sorun büyük ihtimalle verimsiz sorgularda, eksik index’lerde ya da paralellik ayarlarındadır.

Açık mı? Nasıl Kontrol Edilir ve Kapatılır?

-- Mevcut değer (value_in_use = 1 ise açık)
SELECT name, value, value_in_use
FROM sys.configurations
WHERE name = N'priority boost';

-- Kapatmak için
EXEC sys.sp_configure N'show advanced options', 1;
RECONFIGURE;
EXEC sys.sp_configure N'priority boost', 0;
RECONFIGURE;

Ayar, SQL Server servisi yeniden başlatılana kadar geçerli olmaz. value 0, value_in_use hâlâ 1 görünüyorsa değişiklik yapılmış ama servis henüz yeniden başlatılmamıştır. Yeniden başlatmayı bakım penceresine planlayın.

Varsayılandan Farklı Diğer Ayarları da Kontrol Edin

Priority boost açık bulunan bir sunucuda, başka eski “performans” ayarları da değiştirilmiş olabilir. Varsayılan değerinden farklı olan tüm sunucu ayarlarını tek sorguyla listeleyebilirsiniz. Aşağıdaki liste en sık incelenen ayarların varsayılan değerlerini içerir:

SELECT c.name, c.value_in_use, d.default_value
FROM sys.configurations AS c
JOIN (VALUES (N'priority boost', 0), (N'lightweight pooling', 0),
             (N'affinity mask', 0), (N'affinity I/O mask', 0),
             (N'max worker threads', 0), (N'cost threshold for parallelism', 5),
             (N'max degree of parallelism', 0), (N'max server memory (MB)', 2147483647),
             (N'xp_cmdshell', 0), (N'clr enabled', 0)) AS d(name, default_value)
     ON d.name = c.name
WHERE CONVERT(int, c.value_in_use) <> d.default_value;

Max server memory, MAXDOP ve cost threshold for parallelism gibi ayarların varsayılandan farklı olması genellikle doğrudur; önemli olan değerin bilinçli seçilmiş olmasıdır. Priority boost, lightweight pooling ve affinity mask gibi ayarlar ise belgelenmiş özel bir neden yoksa varsayılan değerinde kalmalıdır.

İpucu

Performans için gerçekten fark yaratan ayarlar şunlardır: doğru boyutlandırılmış max server memory, iş yüküne uygun MAXDOP ve cost threshold for parallelism, veri dosyaları için Instant File Initialization, gerektiğinde Lock Pages in Memory ve Windows’ta High Performance güç planı.

Kontrol Listesi

  • priority boost değeri 0; value_in_use da 0.
  • Failover cluster düğümlerinde kesinlikle kapalı.
  • Varsayılandan farklı sunucu ayarlarının her biri için belgelenmiş bir neden var.
  • CPU baskısı varsa kök neden sorgu ve index düzeyinde araştırılıyor.
SQL Server sürecinin Windows zamanlayıcısındaki önceliğini 7’den 13’e çıkaran, kullanımdan kaldırılması planlanan bir sunucu ayarıdır.
Hayır. Microsoft performans ayarı için gerekli olmadığını belirtir; işletim sistemini ve ağ işlevlerini kaynak sıkıntısına sokarak sorun yaratabilir.
Evet. sp_configure ile değer değiştirildikten sonra ayar, SQL Server servisi yeniden başlatıldığında geçerli olur.
Hayır. Microsoft failover cluster instance’larda kullanılmamasını açıkça belirtir.

SQL Server Performans Danışmanlığı

Ayarları alışkanlıkla değil, ölçümle yapın

Aryasoft’un kıdemli DBA ekibi sunucu yapılandırmanızı varsayılan değerler ve iş yükünüzle karşılaştırır, riskli ayarları güvenle geri alır ve gerçekten fark yaratan iyileştirmelere odaklanır.

4.7/5