Tip olmayan bellek erişimi anlama

Microsoft SQL Server is non-uniform memory access (NUMA) aware, and performs well on NUMA hardware without special configuration.Olarak saat hızı ve işlemciler artış sayısını azaltmak bellek gittikçe zorlaşır gecikme süresi bu ek işlem gücü kullanmak için gerekli.Bunu aşmak için donanım satıcılarının büyük L3 önbellek sağlasa da, sınırlı bir çözüm budur.numa mimarisi, bu sorun için ölçeklenebilir bir çözüm sağlar.SQL ServerUygulama herhangi bir değişiklik gerektirmeden numa-tabanlı bilgisayarlara yararlanmak için tasarlanmıştır.

numa kavramları

Her küçük bir hizmet veren birden fazla sistem veri yoluna, donanımda eğilim olmuştur küme işlemci.İşlemcilerin her grup kendi bellek ve belki de kendi g/Ç kanalı vardır.Ancak, her cpu, bellek diğer gruplar ile tutarlı bir şekilde ilişkili erişebilirsiniz.Her grup bir NUMA düğümü denir.CPU sayısı NUMA düğümü içinde donanım satıcısına bağlıdır.Diğer numa düğüm ile ilişkilendirilmiş bellek yerel belleğe erişmek için hızlıdır.Adı, tip olmayan bellek erişimi mimarisi nedeni budur.

numa donanım, bellek bazı bölgelerde diğer bölgelerdeki fiziksel olarak farklı yolları klasöründedir.numa, yerel ve yabancı bellek kullandığından, bellek diğerlerine göre bazı bölümlerine erişmek için daha uzun sürer.Yerel bellek ve yabancı bellek genellikle şu anda çalışan iş parçacığı başvurusu için kullanılır.Şu anda çalışan iş parçacığı cpu ile aynı düğümde bellek yerel bellektir.Hangi düğüme ait olmayan bellek iş parçacığı olan çalışmakta olduğu yabancı.Yabancı bellek olarak da bilinen Uzak bellek.Yabancı bellek yerel bellek erişim için maliyet oranını numa oranı olarak adlandırılır.1 numa oranı simetrik çoklu işlem (smp) olur.Oranı arttıkça, daha fazla bilgi için diğer düğümlere belleğe erişmek için maliyetleri.numa farkında olmayan Windows uygulamaları (dahil olmak üzere SQL Server 2000 SP3 ve önceki sürümleri) bazen kötü numa donanım. üzerinde gerçekleştirmek

Ölçeklenebilirlik numa ana yararı olur.smp mimarisinin ölçeklenebilirlik sınırlarını aşan numa mimarisi tasarlanmıştır.smp ile tüm bellek erişimi aynı paylaşılan bellek veri yoluna nakledilir.Bu görece küçük bir CPU sayısı için düzgün çalışır, ancak CPU erişmek için paylaşılan bellek yolu rekabet, yüzlerce, onlarca değil, hatta.numa tarafından herhangi bir bellek veri yolu üzerindeki CPU sayısını sınırlama ve bir yüksek hızlı bağlantısı aracılığıyla çeşitli düğümlerini bağlayan bu performans sorunlarını azaltır.

4 işlemcili NUMA düğümü

Donanım numa vs.Yumuşak numa

numa yapılandırma yoluyla veya özelleştirilmiş donanım (Donanım numa) bellek CPU ile eşleşen SQL Server bellek (soft numa).Başlangıç sırasında SQL Server temel işletim sistemi ve donanım temelinde kendisini yapılandırır yapılandırma veya Yumuşak numa ayarı.Hem donanım, hem de yumuşak numa, SQL Server numa yapılandırmada, başlar SQL Server Günlük kayıtları ile birlikte her düğüm için multimode yapılandırma ileticpu maskesi.

Donanım numa

Donanım numa ile bilgisayarlarının her küçük bir hizmet veren birden fazla sistem veri yolu, küme işlemci.İşlemcilerin her grup kendi bellek ve belki de kendi g/Ç kanalı olsa da, her cpu bellek tutarlı bir şekilde diğer gruplarıyla ilişkili erişebilirsiniz.Her grup bir NUMA düğümü denir.CPU sayısı NUMA düğümü içinde donanım satıcısına bağlıdır.Donanım üreticiniz, bilgisayarınızın donanım numa destekleyip desteklemediğini söyleyebilir.

Donanım numa varsa, yerine numa Aralanmış bellek kullanacak şekilde yapılandırılmış olabilir.durum, Windows ve bu nedenle SQL Server tarafından tanınmayan olarak numa.Kullanılabilir bellek düğümlerin sayısını bulmak için aşağıdaki sorguyu çalıştırmak SQL Server:

SELECT DISTINCT memory_node_id
FROM sys.dm_os_memory_clerks

If SQL Server returns only a single memory node (node 0), either you do not have hardware NUMA, or the hardware is configured as interleaved (non-NUMA).If you think your hardware NUMA is configured incorrectly, contact your hardware vendor to enable NUMA.SQL Server ignores NUMA configuration when hardware NUMA has four or less CPUs and at least one node has only one CPU.

Yumuşak numa

SQL ServerGrup CPU'lar için referans yumuşak numa düğümleri halinde verir.Birçok CPU'lar ve donanım numa gerekmez, ancak yumuşak numa donanım numa düğümleri daha küçük gruplar halinde alt bölümlere için de kullanılabilir, genellikle yumuşak numa yapılandırın.Sadece SQL Server Zamanlayıcı ve SQL Server ağ arabirimi (SNI) yumuşak numa farkında olan.Bellek düğümleri donanım numa alarak oluşturulan ve bu nedenle yumuşak numa tarafından etkilenen değil.Böylece, örneğin, sekiz CPU'yu smp bir bilgisayarla varsa ve iki CPU ile her dört yumuşak numa düğümleri oluşturma, yalnızca tüm dört numa düğümleri hizmet veren bir bellek düğüm gerekir.Yumuşak numa bellek cpu benzeşimini sağlamaz.

G/Ç ve tembel yazan pek çok CPU ve donanım numa bilgisayarlarla tıkanıklıkları azaltarak yumuşak numa avantajları içerir.Tek bir g/Ç iş parçacığı ve her NUMA düğümü için tembel yazan tek iş parçacığı vardır.Veritabanı kullanımı bağlı olarak, bu tek iş parçacığı önemli performans düşüklüğü olabilir.Dört yumuşak numa düğümleri yapılandırmak, dört g/Ç iş parçacığı ve performansı arttırabilir dört tembel yazan parçacığı sağlar.

Bir yumuşak-CPU farklı donanım numa düğümleri içeren numa oluşturamazsınız.Örneğin, donanım sekiz CPU'yu (0..7) ve iki donanım numa düğüm sahip olduğunuz (0-3 ve 4-7), yumuşak numa cpu(0,1) ve cpu(2,3) birleştirerek oluşturabilirsiniz.Yumuşak numa oluşturamazsınız, cpu (1, 5) kullanarak cpu benzeşimini affinitize için kullanabileceğiniz bir örnek , SQL Server için CPU farklı numa düğümleri.Önceki örnekte, ki, SQL Server 0-3, CPU kullanır, bir g/Ç iş parçacığı ve bir tembel yazan iş parçacığı olmasıEğer, önceki örnekte SQL Server 1, 2, 5 ve 6, CPU kullanır, iki numa düğümleri erişmek ve iki g/Ç iş parçacığı ve iki tembel yazan iş parçacığı

Not

Bazı donanım yapılandırmaları L3/L4 önbellek gibi ortak kaynakları paylaşır.İşlemciler, yumuşak numa düğümleri oluşturmak için bu paylaşılan kaynakları çevresinde gruplandırılabilir.

Daha fazla bilgi için bkz: Nasıl yapılır: sql Server soft numa kullanmak için yapılandırma.