Rosnącym i zmniejszanie pula buforów W NUMA
W tym temacie opisano sposób przypisywania stron pamięci z pula buforów podczas korzystania z dostępu do pamięci inne niż jednolite (NUMA).Użyć tych informacji, aby zrozumieć, w jaki sposób SQL Server używa NUMA i zrozumieć sposób interpretowania liczniki obiektu Węzeł buforu.
Rozkład pamięci
Jest ono SQL Server Pamięć węzłów dla każdego fizycznego węzeł NUMA. Pamięć węzłów rosnąć niezależnie od siebie, ale równomiernie podzielić ilość pamięci.To show the local vs.foreign memory distribution in SQL Server, this topic uses an example that assumes the computer has 16 gigabytes (GB) of memory.Inne aplikacje, włączając w to Windows zostały zużyte część pamięci z każdego węzła SQL Server przypisano trochę pamięci dla swoich procesów poza pula buforów i SQL Server ma 10 GB pamięci, aby przypisać do pula buforów. Puli pamięci bufora jest podzielony pomiędzy cztery fizyczne NUMA węzłów N0, N1, N2 i N3, każdy z następujących dostępnej pamięci lokalnej:
N0 — 1 GB
N1 — 3 GB
N ' — 3 GB
N3 — 3 GB
W powyższych konfiguracja wszystkich węzłów będzie ostatecznie przydzielić i korzystają 2,5 GB pamięci; jednak węzeł N0 będą kończyć 1.0 GB własnej pamięci oraz 1,5 GB pamięci z innych węzłów.
Przydział pamięci przy uruchamianiu
Podczas korzystania z NUMA, SQL Server odbiera pamięci systemu operacyjnego z szybkością porównywalne z systemem innym niż NUMA, nawet jeśli początkowe wolnej pamięci jest rozpowszechniana nierównych odstępach między węzłami. pula buforów próbuje uzyskać jako znacznie lokalnej pamięci dla każdego węzła, jak to możliwe, jednak jest to trudne, ponieważ system Windows nie ma obecnie interfejs API przydzielić pamięci z określonego węzła.
Przypisane pamięci SQL Server, mogą można zaobserwować, że niektóre węzły są podane liczby stron z innych węzłów NUMA (o nazwie obcy stron).Jednak te strony nie są używane w górę rampy, ponieważ one może często przenoszone do węzła posiadanie i stają się lokalne na tym węźle.Gdy wartość Maksymalna pamięć zostanie osiągnięty, niektóre węzły mogą mieć obcych pamięci, ale po miejsce docelowe pamięci zostanie osiągnięty, pula buforów będą traktować pamięci lokalnej i zagranicznych takich samych nazwach.Na przykład pod ciśnieniem pamięci pula buforów nie dokona żadnych nakładu pracy, aby zwolnić stron pamięci obcych przed stron pamięci lokalnej.
Ograniczenie pamięci do określonych węzłów
Jeśli SQL Server został skonfigurowany do uruchamiania podzbiór dostępnych węzłów NUMA, pula buforów nie zostanie automatycznie ograniczony do pamięci na tych węzłach. W takim przypadek należy użyć Maksymalna pamięć opcję, aby ograniczyć pula buforów.Aby uzyskać informacje o Maksymalna pamięć, see Server Memory Options.
Zwolnienie pamięci z węzła
Podczas korzystania z NUMA, Maksymalna pamięć and pamięć serwera min wartości dzielą się równomiernie między węzłami NUMA.Na przykład, ustawienie Maksymalna pamięć się 16 GB w systemie z czterech węzłów pula buforów przydziela 4 GB pamięci na każdym węźle.Jeśli zostanie zastosowane jedno z węzłów w trybie offline, zmieniając maski koligacji ustawieniaMaksymalna pamięć ustawienie będzie być rozprowadzane wśród pozostałych węzłów.Na przykład w poprzednim przykładzie cztery węzła po mieć dwa węzły w trybie offline, wydanej 8 GB pamięci będzie się równomiernie wśród pozostałych węzłów.Ponieważ pula buforów jest w stanie przy użyciu stron obcych, zdalnego pamięci będzie być wykorzystana, jeśli nie ma za mało pamięci na pozostałych węzłach.Jeśli chcesz SQL Server nie należy używać pamięci z węzłów nie jest już pracuje, należy zmniejszyć Maksymalna pamięć ustawienie po przeniesieniu węzły w trybie offline.
Obcy strony
Funkcja węzłów znacznie niezależnie od siebie.Wszystkie przydziały pamięci lub deallocations pamięci dla węzła, są wykonywane przy użyciu pamięci, skojarzony z węzłem.Jednak jeśli pracownik uruchomiona w węźle N1 musi uzyskać dostęp do strona bazy danych, która jest już w pamięci węzła firmy N2, nią udostępniane pamięci nielokalnych.
Posługując się w stosunku do lokalnych.Obcy pamięci w pula buforów
Można zaobserwować pula buforów przez przeglądanie Węzeł buforu obiektu.Całkowita pamięć z pula buforów dla SQL Server jest wyświetlany jako Strony miejsce docelowe Licznik Menedżer buforu obiektu.Pamięci w pula buforów dla każdego węzła jest wyświetlany jako Strony miejsce docelowe Licznik Węzeł buforu obiektu.Pamięci z innych węzłów jest wyświetlany jako Obcy stron licznika.Aby uzyskać więcej informacji zobacz SQL Server, Buffer Node Object i SQL Server, Buffer Manager Object.
Każdy węzeł kontrolnych jego własnej pamięci
Każdy węzeł pamięci ma własny wątek zapisywania z opóźnieniem.Wątek ten nazywa się zarówno niejawne i jawne punktów kontrolnych.Ponieważ komputer multiprzetwarzania symetrycznego (SMP) punkt kontrolny tylko jeden wątek, wiele wątków, używając NUMA powodują zwiększenie szybkości punkt kontrolny.
Zachowanie skanowanie tabela
Skanowanie tabela, działających na węzeł N1 wstawi tylko pamięć skojarzonego z węzłem N1, chyba że skanowania zostało uruchomione równolegle na procesory z wielu węzłów.Jeśli skanowanie działa wyłącznie na jednym węźle, będą używane tylko strony buforu z tego węzła.W ten sposób obciążenie pracą dla partycji Aplikacja.