Niska PLE w węźle NUMA 000, wysoka w 001

10

Patrzę na PLE (Page Life Expectancy) w węzłach NUMA na naszych serwerach SQL i natrafiłem na dość dziwną dystrybucję. Węzeł NUMA 000 ma bardzo niskie PLE w porównaniu do 001. Nie jestem pewien, dlaczego tak jest. Sprawdziłem wiele innych serwerów SQL w naszym środowisku, a inne serwery produkcyjne nie mają tego zachowania.

System działa SQL Server 2012 Enterprise Edition na Dell m620 z 256 GB pamięci RAM. To maszyna z 2 gniazdami i 6 rdzeniami (z obsługą HT). MAXDOP jest ustawiony na 6. Moduły pamięci AFAIK są instalowane równomiernie na poziomach pamięci procesorów

Coś mi mówi, że węzeł NUMA 000 ma inne zadania SQL do wykonania, że ​​inne węzły, ale zapomniałem, gdzie to słyszałem / widziałem.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Obraz PLE

@@Version pokazuje: Microsoft SQL Server 2012 (SP1) - 11.0.3412.0 (X64)

Kasper Brandenburg
źródło
2
Samo PLE niewiele mówi. Istnieje więcej liczników, takich jak Węzeł buforowy i Węzeł pamięci, które mogą rzucić nieco więcej światła. I ostatecznie: czy jest problem z wydajnością, czy to tylko ciekawość? Jak analizować wydajność programu SQL Server
Remus Rusanu
@RemusRusanu: Jeśli mamy problem z wydajnością, nikt nie wie :) Pytam z czystego zainteresowania.
Kasper Brandenburg
Jeśli widzisz licznik, stolen nodes memory KBjego wartość wynosi 97G, co jest bardzo wysoką wartością IMO. Skradziona pamięć nie jest wykorzystywana do celów bazy danych, ale przez SQL Server do takich operacji, jak sortowanie, mieszanie i inne cele. Z drugiej strony pamięć docelowa i całkowita są takie same. To wydaje się dziwne. Musisz zastosować
dodatek
W porządku. Możemy zainstalować wizualizację SQL2014 zamiast instalować SP2
Kasper Brandenburg

Odpowiedzi:

1

Jeśli masz zapytanie wymagające intensywnego odczytu uruchomione na jednym węźle NUMA (w tym przypadku 0), może on oczekiwać niższej oczekiwanej żywotności strony w porównaniu z innymi węzłami NUMA.

To jest całkowicie normalne.

Aby zobaczyć, jakie zapytania są obecnie uruchomione, możesz użyć doskonałego sp_WhoIsActive Adama Machanica . Jest całkowicie darmowy. Niektórzy ludzie nawet uruchamiają go co X minut i logują dane do tabeli, aby mogli wrócić i zobaczyć, co było uruchomione w momencie, gdy PLE nodived.

Brent Ozar
źródło
-1

Rozumiem architekturę NUMA, że każdy węzeł właściwie się izoluje. W takim przypadku mogliby skończyć z zupełnie inną pracą. Na przykład 0 może wykonywać zapytania wymagające dużej ilości fizycznych operacji we / wy, podczas gdy 1 ma szczęście i znajduje wszystkie swoje dane w puli buforów.

SQL Nerd
źródło