SQL Server nie używa wszystkich rdzeni / wątków procesora

15

Po aktualizacji sprzętu naszego SQL Servera zauważyliśmy w Menedżerze zadań Windows, że instancja SQL używa tylko połowy dostępnych wątków:

Menadżer zadań.

Serwer ma następujący sprzęt i oprogramowanie:

  • Windows 2008 R2 Enterprise 64bit SP1
  • Intel Xeon E7-4870 - 4 procesory (40 rdzeni, 80 wątków)
  • Microsoft SQL Server 2012 Enterprise Edition (64-bitowy)

Bieganie select cpu_count from sys.dm_os_sys_infozwraca 40.

System operacyjny widzi wszystkie 80 wątków.

Dlaczego używana jest tylko połowa mocy obliczeniowej serwera?

Mamy ten sam sprzęt i oprogramowanie na dwóch serwerach i oba wykazują takie samo zachowanie.

Jon Seigel
źródło

Odpowiedzi:

23

W dzienniku błędów programu SQL Server należy podać powód. Znalazłem to w systemie klienta (tak naprawdę wklejając wiadomość dla soku Google):

SQL Server wykrył 4 gniazda z 8 rdzeniami na gniazdo i 16 procesorami logicznymi na gniazdo, 64 procesory logiczne ogółem; za pomocą 40 procesorów logicznych opartych na licencjonowaniu SQL Server. To jest komunikat informacyjny; nie jest wymagana żadna akcja użytkownika.

Oto prawdopodobne wyjaśnienie :

Dla klientów z pakietem Software Assurance na istniejących licencjach na serwer SQL EE Server (lub dostęp do nich na podstawie bieżących umów Enterprise Agreement w okresie obowiązywania) utworzono wersję Enterprise Edition, aby umożliwić im uaktualnienie do SQL Server 2012. Ta wersja ma ograniczenia techniczne ograniczające wystąpienie do przy użyciu tylko 20 rdzeni procesora (40 wątków procesora z Hyperthreading).

Podsumowanie: w dzienniku błędów, edycja zostanie zgłoszony jako albo Enterprise Editionalbo Enterprise Edition: Core-based Licensing. Jeśli mówi to pierwsze, podobnie jak w przypadku wyżej wspomnianego systemu klienta, będziesz musiał uzyskać licencję opartą na rdzeniu, aby korzystać ze wszystkich dostępnych rdzeni.

Jeśli tak nie jest, a masz już licencję na wszystkie rdzenie, sprawdź ustawienia maski koligacji, szczególnie jeśli zostały ustawione, a podstawowy sprzęt został zaktualizowany.

Jon Seigel
źródło
Mieliśmy podobny problem. Budujemy maszynę wirtualną z 1 gniazdem i 32 rdzeniami. Sql rozpoznaje tylko 8 procesorów. Przełączamy go na 8 gniazd i 4 rdzenie problem zniknął. Tam, gdzie uruchomiliśmy edycję korporacyjną sql 2008r2 na Windows 2008r2.
user3799984,
Miałem ten sam problem ze standardową wersją. Użyliśmy 8 gniazd i nie użyłoby reszty. Wszystko, co musieliśmy zrobić, to zmienić maszynę wirtualną i skonfigurować 4 gniazda 2 rdzenie.
Nicolas de Fontenay,
7

Sprawdź ERRORLOG od momentu pierwszego uruchomienia programu SQL Server. Powie ci, ile procesorów używa i prawdopodobnie dlaczego. Jeśli możesz opublikować plik ERRORLOG w innym miejscu, pomocne będzie zobaczenie, co się dzieje.

mrdenny
źródło
3

Widziałem to w innym poście Ajmer Dhariwal:

Nawet jeśli masz wersję Enterprise, jeśli stosowany model licencjonowania oparty jest na licencji Server + Client Access License (CAL), serwer jest ograniczony do 20 rdzeni fizycznych na instancję

Dom
źródło