Mssql Server Scheduler Count Sorununda Dolayı Sqlserver Version Upgrade

Bu makalede mssql server üzerinde yanlış sql sever version yüklenmesinden dolayı sql server’ın kullanmış olduğu cpu değerinin kısıtlandığı ve bunun sonucunda sql server full lisan özelliğine sahip sürümüne upgrade yapılması amaçlanmaktadır.

Aşağıdaki komut ile 3 node’lu systemde bulunan scheduler count değerlerini görmüş oluyoruz.

SELECT 
    scheduler_count AS [Scheduler Count],
    cpu_count AS [CPU Count],
    hyperthread_ratio AS [Hyperthread Ratio]
FROM sys.dm_os_sys_info;

Yukarıdaki resimde 1. node scheduler count değeri 128 olması gerekirken kısıtlamadan dolayı bu değerin 40 olduğu görülmektedir. Kısacası maksimum kullanıcın fiziksel cpu sayısının 20 olduğunu hyper tread ile bu değerin 40 olduğu görülmektedir.

Aşağıdaki resimde 1. node üzerinde bulunan 1 numanode1 üzerinde cpu sayısının 64 olduğu ama sql server’ın bunun tamamını kullanamadığını yukarıda resimde görmüş olduk.

SQL Server 2017’nin farklı sürümlerine göre maksimum desteklenen CPU çekirdek sayısı aşağıdaki gibidir:

SQL Server 2017 SürümüMaksimum Desteklenen CPU Sayısı
Enterprise Editionİşletim sistemi limitine kadar (sınırsız)
Standard Edition4 socket veya 24 çekirdek (hangisi daha azsa)
Web Edition4 socket veya 16 çekirdek
Express Edition1 socket veya 4 çekirdek
Developer EditionEnterprise ile aynı (sınırsız)
Özellik201720192022
EnterpriseSınırsızSınırsızSınırsız
Standard24 çekirdek24 çekirdek24 çekirdek
Web16 çekirdek16 çekirdek16 çekirdek
Express4 çekirdek4 çekirdek4 çekirdek

Aşağıda, sunucunuzdaki CPU bilgilerini görüntüleyebileceğiniz basit bir T-SQL sorgusu bulunmaktadır:

SELECT 
    cpu_count AS [Çekirdek Sayısı],
    hyperthread_ratio AS [Hyperthread Oranı],
    cpu_count/hyperthread_ratio AS [Fiziksel CPU Sayısı],
    (SELECT CAST(value_in_use AS INT) FROM sys.configurations WHERE name = 'max degree of parallelism') AS [MaxDOP]
FROM 
    sys.dm_os_sys_info;

Hangi SQL Server sürümünü kullandığınızı ve CPU bilgilerini öğrenmek için:

	SELECT 
    @@VERSION AS [SQL Server Sürümü],
    cpu_count AS [Toplam Çekirdek Sayısı],
    hyperthread_ratio AS [Hyperthread Oranı],
    cpu_count/hyperthread_ratio AS [Fiziksel CPU Sayısı]
FROM 
    sys.dm_os_sys_info;

Araştırmalar sonu sql server’ın sınırlı sayıda cpu kullanmasının sebebi yüklemiş olduğumuz sql server version yapısından kaynaklandığını görmüş oluyoruz. Sunucu üzerine yüklenen sql server sürümü 2017 enterprice edititon olduğu ama tüm cpu değerlerini kullana bilmemiz için enterprice edititon core based sürümün olması gerektiğini yaptığımız araştırmalar sonucu bulmuş olduk.

Şimdi ilgili sürüme upgrade işlemini yapalım. Upgrade yapılacak iso dosyasının indirilmesi gerekmektedir. Kısacası yanlış yüklenen iso dosyası. Yeni indirilen iso dosyasının maintenance bölümünde Edition Upgrade işleminin yeni sql server versiyonu ile yapılması gerekmektedir.

Burada sql server’ın edition sürümünden core based sürümüne gelmesi için sql server lisans anahtarının yeni olan core based lisans anahtarı ile değiştirilmesi gerekmektedir. TD ile başlıyan key eski olan yanlış yüklenen sql server sürümünün key değeridir.

Aşağıdaki resimde görünen key değerini yukarıda kurulu olan sql server setup bölümünde bulunan maintenance bölümüne ekliyoruz. Bu key değerini almak için core based setup dosyasından alınmaktadır. Edition sürümünde setup dosyasını açtığımızda upgrade bölümünde yeni key değerinin eklenmesi mevcut sürüme geçmemizi sağlayacaktır. Aşağıdaki key geçilmesi istenen sürüm ile ilgili key değeridir.

Yukarıda yapılan işlem sadece upgrade işleminin bir yöntemidir.

Sql server 2017 versiyonunda tam tersi işlemde gerçekleşmektedir. Yani core based dan enterprice edititon a geçilebilir. Sadece geçiş yapılacak edition’ın setup dosyasının olması gerekmektedir. Key değeri alabilmek için Bu sadece yapılacak yollardan bir tanesidir Birden fazla biçimle upgrade işlemi yapılmaktadır.

Yukarıdaki setup dosyasını çalıştırıyoruz. Bu cpu sayısının 20 olarak sınırlandığı edititon’un setup dosyasıdır. New SQL Server stand-alone.. bölümünden de yapılmaktadır.

Yeni edition sürümünün key değeri eklenmektedir.

İlgili instance seçimi yapıldıktan sonra upgrade işlemi başarılı bir şekilde yapılmaktadır.

Geçi yaptıktan sonra aşağıdaki komut ile sql server’ın tüm cpu değerlerini kullanıp kullanmadığını görebiliriz.

SELECT SERVERPROPERTY('Edition') AS Edition;
SELECT 
    scheduler_count AS [Scheduler Count],
    cpu_count AS [CPU Count],
    hyperthread_ratio AS [Hyperthread Ratio]
FROM sys.dm_os_sys_info;

Bu makalede yanlış yüklenmiş sql server sürümünün cpu üzerinde etkisini ve version değişikliğiyle nasıl düzeltileceğini görmüş olduk.

Aşağıdaki komut ile aktif olan scheduler değerlerini görebiliriz.

select * from sys.dm_os_schedulers where status ='VISIBLE ONLINE'

Başka makalede görüşmek dileğiyle..

Kim bir iyilikle gelirse, kendisine bunun on katı vardır, kim bir kötülükle gelirse, onun mislinden başkasıyla cezalandırılmaz ve onlar haksızlığa uğratılmazlar. En’am Suresi, 160. Ayet

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir