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 geçici 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. Aynı anda çok iş parçacıklı (SMT) işlemci çekirdekleri, bir düğümdeki fiziksel çekirdekler sayılırken ayırt edilir. 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.
bağımsız değişkeniyle SET SOFTNUMA 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 şekilde, SQL Server her düğüm veya yuva başına sekizden fazla fiziksel çekirdeğe sahip donanım NUMA düğümlerini algıladığında SQL Server hata günlüğünde gördüğünüz geçici NUMA ile ilgili bilgi türü gösterilmektedir.
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ılırken, soft-NUMA maskesi ikili, DWORD (onaltılık veya ondalık) veya 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 ile 0baş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>
Önemli G/Ç deneyimine sahip olan A örneği artık iki G/Ç iş parçacığına ve bir gecikmeli yazıcı iş parçacığına sahip. İşlemci yoğunluklu işlemler 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ı miktarda bellek atanabilir, ancak donanım NUMA'sından farklı olarak her ikisi de aynı işletim sistemi bellek bloğundan bellek alır ve bellekten işlemciye benzeme 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 fiziksel NUMA düğümlerinin sayısı olarak ne olursa olsun, oluşturulan gecikmeli yazıcı iş parçacıklarının sayısıdır. Daha fazla bilgi için bkz . Nasıl Çalışır: Yumuşak NUMA, G/Ç Tamamlama İş Parçacığı, Gecikmeli Yazıcı Çalışanları ve Bellek Düğümleri.
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
Geçici NUMA'nın geçerli 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 çalışan değeri görüntüleyebilirsiniz ancak kullanarak sp_configuredeğerini değiştiremezsiniz. BAĞıMSıZ değişkeniyle ALTER SERVER CONFIGURATION deyimini SET SOFTNUMA kullanmanız gerekir.