Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Modern işlemciler yuva başına birden çok çekirdeğe sahiptir. Her yuva genellikle tek bir NUMA düğümü olarak temsil edilir. SQL Server veritabanı altyapısı, NUMA düğümü başına çeşitli iç yapıları bölümler ve hizmet iş parçacıklarını bölümler. Yuva başına 10 veya daha fazla çekirdek içeren işlemcilerde, donanım NUMA düğümlerini bölmek için yazılım NUMA'sını kullanmak genellikle ölçeklenebilirliği ve performansı artırır. SQL Server 2014 (12.x) SP2'den önce yazılım tabanlı NUMA (soft-NUMA), düğüm yapılandırma benzimi maskesi eklemek için kayıt defterini düzenlemenizi gerektiriyordu ve örnek başına değil konak düzeyinde yapılandırıldı. SQL Server 2014 (12.x) SP2 ve SQL Server 2016 (13.x) ile başlayarak, SQL Server Veritabanı Altyapısı hizmeti başlatıldığında soft-NUMA veritabanı örneği düzeyinde otomatik olarak yapılandırılır.
Sık erişimli ekleme işlemcileri soft-NUMA tarafından desteklenmez.
Otomatik soft-NUMA
SQL Server 2016 (13.x) ile, SQL Server Veritabanı Altyapısı başlangıçta NUMA düğümü veya yuva başına sekizden fazla fiziksel çekirdek algılasa, geçici NUMA düğümleri varsayılan olarak otomatik olarak oluşturulur. Bir düğümde fiziksel çekirdeklerin sayımında, eşzamanlı çoklu iş parçacığına (SMT) sahip işlemci çekirdekleri birbirinden ayırt edilmez. Algılanan fiziksel çekirdek sayısı yuva başına sekizden fazla olduğunda, SQL Server Veritabanı Altyapısı ideal olarak sekiz çekirdek içeren, ancak düğüm başına dört veya sekize kadar fiziksel çekirdeğe inebilen geçici NUMA düğümleri oluşturur. Donanım düğümünün boyutu CPU benzenşimi maskesiyle sınırlanabilir. NUMA düğümlerinin sayısı hiçbir zaman desteklenen NUMA düğüm sayısı üst sınırını aşmaz.
SET SOFTNUMA bağımsız değişkeniyle ALTER SERVER CONFIGURATION deyimini kullanarak soft-NUMA'yı devre dışı bırakabilir veya yeniden etkinleştirebilirsiniz. Bu ayarın değerini değiştirmek için veritabanı altyapısının yeniden başlatılması gerekir.
Aşağıdaki şekil, SQL Server her bir düğüm ya da yuva başına sekizden fazla fiziksel çekirdeğe sahip donanım NUMA düğümlerini algıladığında, SQL Server hata günlüğünde yazılımsal NUMA ile ilgili gördüğünüz bilgi türünü gösterir.
2016-11-14 13:39:43.17 Server SQL Server detected 2 sockets with 12 cores per socket and 24 logical processors per socket, 48 total logical processors; using 48 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
2016-11-14 13:39:43.35 Server Automatic soft-NUMA was enabled because SQL Server has detected hardware NUMA nodes with greater than 8 physical cores.
2016-11-14 13:39:43.63 Server Node configuration: node 0: CPU mask: 0x0000000000555555:0 Active CPU mask: 0x0000000000555555:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2016-11-14 13:39:43.63 Server Node configuration: node 1: CPU mask: 0x0000000000aaaaaa:0 Active CPU mask: 0x0000000000aaaaaa:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2016-11-14 13:39:43.63 Server Node configuration: node 2: CPU mask: 0x0000555555000000:0 Active CPU mask: 0x0000555555000000:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2016-11-14 13:39:43.63 Server Node configuration: node 3: CPU mask: 0x0000aaaaaa000000:0 Active CPU mask: 0x0000aaaaaa000000:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
Uyarı
SQL Server 2014 (12.x) SP 2'den başlayarak, SQL Server'ın Otomatik geçici NUMA kullanmasına izin vermek için izleme bayrağı 8079'u kullanın. SQL Server 2016(13.x) ile başlayarak bu davranış altyapı tarafından denetlenir ve 8079 izleme bayrağının hiçbir etkisi yoktur. Daha fazla bilgi için bkz. DBCC TRACEON ile izleme bayrakları ayarlama.
El ile yumuşak NUMA
SQL Server'ı geçici NUMA kullanacak şekilde el ile yapılandırmak için, otomatik geçici NUMA'yı devre dışı bırakın ve kayıt defterini düzenleyerek düğüm yapılandırma benzimi maskesi ekleyin. Bu yöntem kullanıldığında, soft-NUMA maskesi ikili değer, DWORD (onaltılık veya ondalık) ya da QWORD (onaltılık veya ondalık) kayıt defteri girdisi olarak belirtilebilir. İlk 32 CPU'dan daha fazlasını yapılandırmak için QWORD veya BINARY kayıt defteri değerlerini kullanın (QWORD değerleri SQL Server 2012'den (11.x) önce kullanılamaz). Kayıt defterini değiştirdikten sonra soft-NUMA yapılandırmasının etkili olması için Veritabanı Altyapısı'nı yeniden başlatmanız gerekir.
Tavsiye
CPU'lar, 0 ile başlayarak numaralandırılır.
Uyarı
Kayıt defterini yanlış düzenlemek sisteminize ciddi zararlar verebilir. Kayıt defterinde değişiklik yapmadan önce, bilgisayardaki değerli verileri yedeklemenizi öneririz.
Donanım NUMA'sı olmayan sekiz CPU'ya sahip bir bilgisayar örneğini düşünün. Üç geçici NUMA düğümü yapılandırılır. Veritabanı Altyapısı örneği A, CPU'ları 0 ile 3 arasında kullanacak şekilde yapılandırılmıştır. Veritabanı Altyapısı'nın ikinci bir örneği yüklenir ve 4 ile 7 arasında CPU'ları kullanacak şekilde yapılandırılır. Örnek görsel olarak şu şekilde gösterilebilir:
CPUs 0 1 2 3 4 5 6 7
Soft-NUMA <-N0-><-N1-><----N2---->
SQL Server <instance A><instance B>
Yoğun G/Ç işlemleriyle karşılaşan A örneğinde artık iki G/Ç iş parçacığı ve bir geç yazıcı iş parçacığı bulunuyor. İşlemciyi yoğun kullanan işlemleri gerçekleştiren B örneği, yalnızca bir G/Ç iş parçacığına ve bir gecikmeli yazıcı iş parçacığına sahiptir. Örneklere farklı miktarlarda bellek atanabilir, ancak donanım NUMA’dan farklı olarak bunların tümü belleği aynı işletim sistemi bellek bloğundan alır ve bellek‑işlemci yakınlığı yoktur.
Gecikmeli yazıcı iş parçacığı, fiziksel NUMA bellek düğümlerinin SQLOS görünümüne bağlıdır. Bu nedenle, donanımın fiziksel NUMA düğümü sayısı olarak sunduğu sayı neyse, oluşturulan gecikmeli yazıcı iş parçacıklarının sayısı da odur. Daha fazla bilgi için Nasıl Çalışır: Yumuşak NUMA, G/Ç Tamamlama İş Parçacığı, Tembel Yazıcı İş Parçacıkları ve Bellek Düğümleri konusuna bakın.
Uyarı
Bir SQL Server örneğini yükselttiğiniz zaman Soft-NUMA kayıt defteri anahtarları kopyalanmaz.
CPU benzenşimi maskesini ayarlama
CPU benzenşimi maskesini ayarlayarak 0, 1, 2 ve 3 CPU'larını kullanacak şekilde yapılandırmak için A örneğinde aşağıdaki deyimi çalıştırın:
ALTER SERVER CONFIGURATION
SET PROCESS AFFINITY CPU = 0 TO 3;
CPU benzenşimi maskesini ayarlayarak B örneğinde aşağıdaki deyimi çalıştırarak CPU 4, 5, 6 ve 7'yi kullanacak şekilde yapılandırın:
ALTER SERVER CONFIGURATION
SET PROCESS AFFINITY CPU = 4 TO 7;
Yumuşak NUMA düğümlerini CPU'lara eşleme
Kayıt Defteri Düzenleyicisi programını ()regedit.exe kullanarak, soft-NUMA düğümü 0'ı CPU 0 ve 1'e, soft-NUMA düğüm 1'i CPU 2 ve 3'e ve soft-NUMA düğümü 2'yi de 4, 5, 6 ve 7 CPU'larına eşlemek için aşağıdaki kayıt defteri anahtarlarını ekleyin.
Tavsiye
CPU'ları 60 ile 63 arasında belirtmek için QWORD değerini F000000000000000 veya binary değerini 1111000000000000000000000000000000000000000000000000000000000000kullanın.
Aşağıdaki örnekte, yuva başına 18 çekirdekli (dört yuvada) bir DL580 G9 sunucunuz olduğunu ve her yuvanın kendi K grubunda olduğunu varsayalım. Oluşturabileceğiniz geçici NUMA yapılandırması şu örneğe benzer olacaktır: düğüm başına altı çekirdek, grup başına üç düğüm, dört grup.
| Birden çok K Grubu olan bir SQL Server örneği örneği | Türü | Değerin adı | Değer verileri |
|---|---|---|---|
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node0 |
DWORD - 32 bitlik sayı | CPUMask |
0x3f |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node0 |
DWORD - 32 bitlik sayı | Group |
0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node1 |
DWORD - 32 bitlik sayı | CPUMask |
0x0fc0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node1 |
DWORD - 32 bitlik sayı | Group |
0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node2 |
DWORD - 32 bitlik sayı | CPUMask |
0x3f000 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node2 |
DWORD - 32 bitlik sayı | Group |
0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node3 |
DWORD - 32 bitlik sayı | CPUMask |
0x3f |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node3 |
DWORD - 32 bitlik sayı | Group |
1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node4 |
DWORD - 32 bitlik sayı | CPUMask |
0x0fc0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node4 |
DWORD - 32 bitlik sayı | Group |
1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node5 |
DWORD - 32 bitlik sayı | CPUMask |
0x3f000 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node5 |
DWORD - 32 bitlik sayı | Group |
1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node6 |
DWORD - 32 bitlik sayı | CPUMask |
0x3f |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node6 |
DWORD - 32 bitlik sayı | Group |
2 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node7 |
DWORD - 32 bitlik sayı | CPUMask |
0x0fc0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node7 |
DWORD - 32 bitlik sayı | Group |
2 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node8 |
DWORD - 32 bitlik sayı | CPUMask |
0x3f000 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node8 |
DWORD - 32 bitlik sayı | Group |
2 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node9 |
DWORD - 32 bitlik sayı | CPUMask |
0x3f |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node9 |
DWORD - 32 bitlik sayı | Group |
3 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node10 |
DWORD - 32 bitlik sayı | CPUMask |
0x0fc0 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node10 |
DWORD - 32 bitlik sayı | Group |
3 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node11 |
DWORD - 32 bitlik sayı | CPUMask |
0x3f000 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\NodeConfiguration\Node11 |
DWORD - 32 bitlik sayı | Group |
3 |
Meta veriler
Soft-NUMA'nın mevcut durumunu ve yapılandırmasını görüntülemek için aşağıdaki DMV'leri kullanabilirsiniz.
sp_configure (Transact-SQL): SOFTNUMA için geçerli değeri (
0veya1) görüntüler.sys.dm_os_sys_info (Transact-SQL):
softnuma_configurationvesoftnuma_configuration_descsütunları geçerli yapılandırma değerlerini görüntüler.
sp_configure kullanarak otomatik soft-NUMA için geçerli değeri görüntüleyebilirsiniz, ancak sp_configure kullanarak bu değeri değiştiremezsiniz.
SET SOFTNUMA argümanıyla ALTER SERVER CONFIGURATION ifadesini kullanmanız gerekir.