SQL Server tüm CPU çekirdeklerini / iş parçacıklarını kullanmıyor


15

SQL Server'ımızın donanımını yükselttikten sonra, Windows Görev Yöneticisi'nde SQL örneğinin yalnızca kullanılabilir iş parçacıklarının yarısını kullandığını fark ettik:

Görev Yöneticisi.

Sunucu aşağıdaki donanım ve yazılıma sahiptir:

  • Windows 2008 R2 Enterprise 64bit SP1
  • Intel Xeon E7-4870 - 4 işlemci (40 çekirdek, 80 diş)
  • Microsoft SQL Server 2012 Enterprise Edition (64 bit)

Koşu select cpu_count from sys.dm_os_sys_info40 döndürür.

İşletim sistemi 80 iş parçacığını da görüyor.

Neden sunucunun işlem gücünün sadece yarısı kullanılıyor?

İki sunucuda aynı donanım ve yazılıma sahibiz ve ikisi de aynı davranışı sergiliyor.

Yanıtlar:


23

SQL Server hata günlüğünde nedenini belirtmelidir. Bunu bir müşteri sisteminde buldum (gerçekten sadece Google suyu için mesajı yapıştırarak):

SQL Server soket başına 8 çekirdekli 4 soket ve soket başına 16 mantıksal işlemci, 64 toplam mantıksal işlemci; SQL Server lisansına dayalı 40 mantıksal işlemci kullanarak. Bu bilgilendirici bir mesajdır; kullanıcı işlemi gerekmez.

Buradan olası bir açıklama aldım :

Mevcut SQL EE Server lisanslarında Yazılım Güvencesi olan müşteriler (veya dönem boyunca geçerli Kurumsal Anlaşmaları kapsamında bunlara erişim), SQL Server 2012'ye yükseltme yapabilmeleri için Enterprise Edition'ın bir sürümü oluşturuldu. Bu sürüm, yalnızca 20 işlemci çekirdeği kullanır (Hyperthreading özellikli 40 CPU iş parçacığı).

Özet: hata günlüğünde, sürüm ya Enterprise Editionda olarak rapor edilir Enterprise Edition: Core-based Licensing. Daha önce söylendiği gibi, yukarıda bahsedilen müşteri sisteminde olduğu gibi, mevcut tüm çekirdekleri kullanmak için çekirdek tabanlı bir lisans almanız gerekecektir.

Durum böyle değilse ve zaten tüm çekirdekler için lisanslıysanız, özellikle ayarlandıysa ve temel donanım yükseltildiyse, yakınlık maskesi ayarlarınızı kontrol edin.


Benzer bir sorun yaşadık. 1 soketli ve 32 çekirdekli bir VM üretiyoruz. Sql sadece 8 CPU tanıyacaktır. 8 sokete ve 4 çekirdeğe geçiyoruz, sorun ortadan kalktı. Biz burada Windows 2008r2 üzerinde kurumsal editon sql 2008r2 çalışıyor.
user3799984 16:15

Standart bir sürümle aynı sorunu yaşadım. Biz kullanılan 8 soketleri vardı ve geri kalanı kullanmak olmaz. Tek yapmamız gereken VM'yi değiştirmek ve 4 soket 2 çekirdeğini yapılandırmak.
Nicolas de Fontenay

7

SQL Server ilk başlatıldığı zaman ERRORLOG bakın. Size kaç CPU kullandığını ve muhtemelen nedenini söyleyecektir. ERRORLOG dosyasını neler olup bittiğini görmenize yardımcı olacak bir yere gönderebilirseniz.


3

Bunu Ajmer Dhariwal'ın başka bir gönderisinde gördüm :

Enterprise sürümünüz olsa bile, uygulanan lisanslama modeli Sunucu + İstemci Erişim Lisansı (CAL) tabanlıysa, sunucu örnek başına 20 fiziksel çekirdekle sınırlıdır

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.