Share via


Büyüyen ve arabellek havuzu NUMA altında küçültmek

Bu konu açıklar nasıl bellek sayfalarının arabellek havuzu olmayan tekdüze bellek erişimi (NUMA) kullanırken atanır.Anlamak için bu bilgileri kullanın nasıl SQL Server NUMA kullanır ve arabellek düğüm nesne sayaçlarının yorumlama anlamak için.

Dağıtım bellek

Biri yok SQL Server Her fiziksel NUMA düğümü için bellek düğümü. Bellek düğümlerin birbirinden bağımsız olarak ulaşması ancak bellek eşit bölün.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.Windows'da dahil diğer uygulamaların her düğümden belleğin tüketilen SQL Server bellek, işlemler, arabellek havuzu dışında için atanan ve SQL Server arabellek havuzu için atamak için 10 GB bellek vardır. Arabellek havuz belleği dört fiziksel NUMA düğümler arasında N0, N1, N2 ve her biri aşağıdaki yerel bellek kullanılabilir N3 ayrılmıştır:

  • N0 – 1 gb

  • N1 – 3 gb

  • N2 – 3 gb

  • N3 – 3 gb

Yukarıdaki yapılandırmada, tüm düğümlerin sonunda ayırmak ve 2,5 GB bellek kullanır; ancak, düğüm N0 1.0 GB kendi bellek ve 1.5 GB'DEN fazla bellek diğer düğümlerden sona ereceği.

Başlangıçta bellek atama

NUMA, kullanırken SQL Server ilk boş bellek unevenly düğümler arasında dağıtılmıştır olsa bile, işletim sistemi olmayan NUMA sistemine benzer bir hızda bellek alır. Arabellek havuzu için her düğümde mümkün olduğunca çok yerel bellek olarak almak çalışır; bir API, belirli bir düğümde bellek ayıramadığı için Windows şu anda yok ancak zor olmasıdır.

Bellek atanmış olarak SQL Server, bazı düğümler adlı (diğer NUMA düğümlerden çok sayfalı verildiğini gözlemek yabancı bir sayfa).Ancak, bu sayfalar, bunlar sık sahibi olan düğüme transfer ve olması için düğüm yerel olur çünkü pisti yukarı sırasında kullanılmaz.Zaman değeri en fazla sunucu belleği ulaşıldı, bazı düğümler yabancı bellek olabilir, ancak bellek hedef elde sonra yerel ve dış bellek aynı arabellek havuzu kabul.Örneğin, bellek baskısı altında arabellek havuzu yerel bellek sayfalarını önce yabancı bir bellek sayfalarını boşaltmak için herhangi bir çaba yapacak değil.

Belirli bir düğüm için bellek sınırlama

If SQL Server yapılandırılmış bir altkümesine kullanılabilir NUMA düğümlerin üzerinde çalıştırmak için , arabellek havuzu otomatik olarak bu düğümlerde bellek sınırlı olur. Bu durumda, en fazla sunucu belleği seçeneği arabellek havuzu sınırlamak için.Hakkında bilgi için en fazla sunucu belleği, see Sunucu Bellek Seçenekleri.

Bir düğüm tarafından bellek serbest bırakma

NUMA, kullanırken en fazla sunucu belleği and sunucu belleği en az değerleri, NUMA düğümler arasında eşit olarak ayrılır.Örneğin, ayarladığınız en fazla sunucu belleği dört düğümlerle sistem üzerinde 16 GB olarak arabellek havuzu 4 GB bellek her düğümde ayırır.Çevrimdışı düğümlerden birini değiştirerek gerçekleştirmeniz gerekiyorsa benzeşme maskesi ayarıen fazla sunucu belleği ayarı arasında kalan düğümleri yeniden.Iki düğüm çevrimdışı olması, örneğin önceki dört düğüm örnekte yayımlanmış sekiz GB bellek eşit kalan düğümleri arasında dağıtılacaktır.Arabellek havuzu yabancı sayfalarını kullanarak yeteneğine sahip olduğundan, uzaktan bellek, kullanılan varsa Kalan düğümlerde yeterli bellek yok.Isterseniz SQL Server düğümlerin artık çalıştığı bellekten kullanmak için azaltma gerekir en fazla sunucu belleği ayarı sonra düğümlerin çevrimdışı taşıma.

Yabancı bir sayfa

Büyük ölçüde birbirinden düğümlerin işlev.Tüm bellek ayırmalarını ve deallocations düğümü için bellek bitti düğüm ile ilişkilendirilmiş bellek kullanma.Ancak, N1, önceden düğüm N2'ın bellekteki bir veritabanı sayfasına erişmek için gerekli olan düğümde çalışan işçi, yerel olmayan bellek eriştiği.

Yerel ve gözleme.Arabellek havuzu, yabancı bir bellek

Arabellek havuzu görüntüleyerek gözlenen Arabellek düğüm nesnesi.Arabellek havuzu için toplam bellek SQL Server olarak Hedef sayfa sayacıArabellek Yöneticisi nesnesi.Her düğüm için arabellek havuzu bellekte olarak görüntülenen Hedef sayfa sayacıArabellek düğüm nesnesi.Diğer düğümlerden bellek olarak görüntülenen Yabancı bir sayfa sayacı.Daha fazla bilgi için bkz: SQL Server arabellek düğüm nesnesi ve SQL Server arabellek Yöneticisi nesnesi.

Her örnek kendi bellek düğüm denetim noktaları

Her bir bellek düğüm kendi yavaş yazıcı iş parçacığı vardır.Bu iş parçacığı parçacığının örtülü ve açık denetim hem de denir.Simetrik çoklu işlem (SMP) bir bilgisayarda yalnızca bir denetim noktası iş parçacığı olduğundan, birden çok iş parçacığı NUMA kullanırken bir denetim noktası hızını artış sonuçlanır.

Tablo tarama davranışı

Düğüm N1'üzerinde çalışan BIR tablo taraması, yalnızca birden çok düğümlerden tarama paralel olarak CPU üzerinde çalıştırılıyor sürece N1 düğümüyle ilişkilendirilmiş bellek doldurur.Tarama, yalnızca tek bir düğümde çalışıyorsa, yalnızca o düğüm arabellek sayfalarından kullanılır.Bu iş için bölüm yardımcı bir Uygulama.