W jaki sposób program SQL Server obsługuje NUMA
W programie wprowadzono następujące zmiany klucz SQL Server 2005 Aby korzystać z pamięci inne niż jednolite architektury dostępu (NUMA).
Grupowanie wspólne procesorów
SQL Server pracownikom grup do mapowania na grupowanie procesorów, oparte na sprzęcie granicę NUMA udostępniane przez system Windows.Na przykład pole 16-kierunkowe może mieć węzłów NUMA 4, każdy węzeł o 4 procesorów.Pozwala to na większą miejscowości pamięci dla tej grupy pracownikom podczas przetwarzania zadania w węźle.Z SQL Server Ponadto można podzielić procesorów skojarzonych z węzeł NUMA sprzętu do wielu węzłów PROCESORA. Jest to określane jako miękki NUMA.Zazwyczaj użytkownik może podzielić procesorów do podziału pracy przez PROCESOR węzłów.Aby uzyskać więcej informacji na temat NUMA miękkich zobacz Opis dostępu do pamięci inne niż jednolite.
Gdy wątek uruchomiony na określony sprzęt węzeł NUMA przydziela pamięć, Menedżera pamięci SQL Server próbuje przydzielić pamięci z pamięci, skojarzonego z węzeł NUMA dla danej lokalizacji odwołania. Podobnie bufor puli stron są rozmieszczane na węzłach NUMA sprzętu.Jest bardziej efektywne dla wątek pamięć o dostępie ze strona buforu, która jest przydzielona w lokalnej pamięci niż aby dostęp do niej z obcej pamięci.Aby uzyskać więcej informacji zobaczRosnącym i zmniejszanie pula buforów W NUMA.
Każdy węzeł NUMA (sprzęt NUMA lub miękkie NUMA) ma skojarzony port zakończenia We/Wy, który jest używany do obsługi sieci We/Wy.W ten sposób dystrybucji obsługi sieci We/Wy na wielu portach.Po ustanowieniu połączenia klient do SQL Server, jest on związany z jednym z węzłów. W tym węźle zostaną przetworzone wszystkie żądania wsadowego od tego klient.
Przy każdym wystąpieniu SQL Server zostanie uruchomiony w środowisku NUMA dziennik błędów SQL zawiera komunikaty informacyjne, opisujące konfiguracja NUMA.
Mapy soft NUMA węzłów do węzłów NUMA sprzętu przez program SQL Server
Miękki NUMA jest zdefiniowany jeden raz dla wszystkich SQL Server wystąpień na komputerze, tak wiele wystąpień Database Engine Zobacz wszystkie te same węzłów miękki NUMA. Każde wystąpienie Database Engine następnie przy użyciu Opcja maski koligacji , aby wybrać odpowiednie procesorów.Każde wystąpienie użyje niezależnie od węzłów NUMA miękki są skojarzone z tych procesorów.
Podczas uruchamiania systemu Windows przydziela pamięć systemu operacyjnego z sprzętu NODE 0.W związku z tym sprzętu NODE 0 ma mniej lokalnej pamięci dostępnej dla innych aplikacji niż inne węzły.Ten problem jest accentuated po pamięć podręczna (cache) plików dużej ilości pamięci.Kiedy SQL Server zostanie uruchomiony na komputerze z więcej niż jeden węzeł NUMA, próbuje uruchomić w węźle NUMA innych niż NODE 0, aby jego struktur globalne można przydzielić pamięci lokalnej. Aby skonfigurować NUMA miękkich, zobacz How to: Configure SQL Server to Use Soft-NUMA.
W jaki sposób połączenia są przypisane do węzłów NUMA
TCP i VIA może affinitize połączeń do jednego lub kilku określonych węzłów NUMA.Gdy nie affinitized lub podczas łączenia się z potoków nazwanych lub udostępniony pamięci, połączenia są rozdzielane NUMA węzłów na podstawie round-robin.W węźle NUMA połączenie jest uruchamiane na najmniej załadowanego harmonogramu na tym węźle.Ze względu na charakter round-robin przypisywania nowych połączeń jest możliwe, że wszystkie procesory w węźle są zajęte, gdy inny węzeł jest bezczynny.Jeśli masz bardzo małą liczbę procesorów (na przykład 2) i zostanie wyświetlony z powodu długim partii, takie jak ładowanie zbiorcze dużych dysproporcji planowania, konieczne może być lepszą wydajność w przypadku wyłączenia NUMA.Aby uzyskać więcej informacji zobaczHow to: Map TCP/IP Ports to NUMA Nodes.
Ograniczenia wersja programu SQL Server
SQL Server 2000 through Service Pack 3 does not include special support for NUMA; however, Service Pack 4 has some limited NUMA optimizations.SQL Server 2005 has many substantial improvements, and users of NUMA are strongly encouraged to upgrade to SQL Server 2005 to take full advantage of NUMA architecture.