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.
Uyarı
Bu özellik, SQL Server'ın gelecek bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. Bunun yerine ALTER SERVER CONFIGURATION kullanın.
Birden çok görevi gerçekleştirmek için Windows bazen işlem iş parçacıklarını farklı işlemciler arasında taşır. İşletim sistemi açısından verimli olsa da, her işlemci önbelleği sürekli olarak verilerle yeniden yüklendiğinden bu etkinlik yoğun sistem yükleri altında SQL Server performansını düşürebilir. belirli iş parçacıklarına işlemci atamak, işlemci yeniden yüklemelerini ortadan kaldırarak bu koşullar altında performansı geliştirebilir; bir iş parçacığı ile işlemci arasındaki böyle bir ilişki, işlemci benzitesi olarak adlandırılır.
SQL Server iki benzenşim maskesi seçeneğiyle işlemci benzenşimini destekler: affinity mask ( CPU benzenşimi maskesi olarak da bilinir) ve affinity I/O mask. Daha fazla bilgi için affinity I/O mask option hakkında bkz Sunucu yapılandırması: bağlılık G/Ç maskesi. 33 ile 64 işlemcisi olan sunucular için CPU ve G/Ç benzenşimi desteği, sırasıyla benzenşim64 maskesi ve benzenimi64 G/Ç maske sunucusu yapılandırma seçeneklerini de kullanmanızı gerektirir.
Uyarı
33 ile 64 işlemcisi olan sunucular için benşim desteği yalnızca 64 bit işletim sistemlerinde kullanılabilir.
SQL Server'ın affinity mask önceki sürümlerinde bulunan seçeneği, CPU benzenşimini dinamik olarak denetler.
SQL Server'da seçenek, affinity mask SQL Server örneğinin yeniden başlatılması gerekmeden yapılandırılabilir.
sp_configure, kullandığınızda, bir yapılandırma seçeneği ayarladıktan sonra ya RECONFIGURE ya da RECONFIGURE WITH OVERRIDE çalıştırmalısınız. SQL Server Express kullanırken, \
Benzenşim maskelerinde yapılan değişiklikler dinamik olarak gerçekleşir ve SQL Server'da işlem iş parçacıklarını bağlayan CPU zamanlayıcılarının isteğe bağlı olarak başlatılmasını ve kapatılmasını sağlar. Sunucuda koşullar değiştikçe bu durum oluşabilir. Örneğin, sunucuya yeni bir SQL Server örneği eklenirse, işlemci yükünü yeniden dağıtma seçeneğinde affinity mask ayarlamalar yapılması gerekebilir.
Benzenşim bit maskelerinde yapılan değişiklikler, SQL Server'ın yeni bir CPU zamanlayıcısını etkinleştirmesini ve mevcut CPU zamanlayıcısını devre dışı bırakmasını gerektirir. Daha sonra yeni veya kalan zamanlayıcılarda yeni toplu işlemler işlenebilir.
Yeni bir CPU zamanlayıcı başlatmak için SQL Server yeni bir zamanlayıcı oluşturur ve bunu standart zamanlayıcıları listesine ekler. Yeni zamanlayıcı yalnızca yeni gelen iş yükleri için düşünülür. Geçerli toplu işlemler aynı zamanlayıcıda çalışmaya devam eder. Çalışanlar, boşaltıldıklarında veya yeni çalışanlar oluşturulduklarında yeni zamanlayıcıya geçiş yaparlar.
Bir zamanlayıcının kapatılması için zamanlayıcıda bulunan tüm grupların etkinliklerini tamamlaması ve çıkması gerekir. Kapatılan bir zamanlayıcı çevrimdışı olarak işaretlenir, böylece üzerinde yeni bir toplu iş zamanlanmaz.
Yeni bir zamanlayıcı eklemeniz veya kaldırmanız fark etmeksizin, sunucu çalışır durumdayken kilit izleyicisi, denetim noktası, sistem görev iş parçacığı (DTC işleme) ve sinyal işlemi gibi kalıcı sistem görevleri zamanlayıcıda çalışmaya devam eder. Bu kalıcı sistem görevleri dinamik olarak taşınmaz. Bu sistem görevlerinin işlemci yükünü zamanlayıcılar arasında yeniden dağıtmak için SQL Server örneğinin yeniden başlatılması gerekir. SQL Server kalıcı bir sistem göreviyle ilişkili bir zamanlayıcıyı kapatmaya çalışırsa, görev çevrimdışı zamanlayıcıda çalışmaya devam eder (geçiş yoktur). Bu zamanlayıcı, değiştirilen benşim maskesindeki işlemcilere bağlıdır ve değişiklik öncesinde bağlı olduğu işlemciye herhangi bir yük koymaz. Fazladan çevrimdışı zamanlayıcıların olması sistemin yükünü önemli ölçüde etkilememelidir. Bu durumda, bu görevleri değiştirilmiş benşim maskesiyle kullanılabilen zamanlayıcılarda yeniden yapılandırmak için veritabanı sunucusunun yeniden başlatılması gerekir.
SQL Server'ın affinity mask ve affinity I/O mask yapılandırma değerlerini aynı CPU'ları kullanacak şekilde ayarlamayın. Hem SQL Server çalışan iş parçacığı zamanlaması hem de G/Ç işleme için bir işlemci bağlamayı seçerseniz performans düşük olabilir. Bu nedenle, yapılandırma değerlerinin aynı işlemci için ayarlanmamış olduğundan emin olun. Aynı öneri affinity64 mask ve affinity64 I/O mask için de geçerlidir.
affinity mask ve affinity I/O mask çakışmaması için, RECONFIGURE komutu, normal CPU ve G/Ç bağlılıklarının birbirini dışladığını doğrular. Aksi takdirde, istemci oturumuna ve SQL Server hata günlüğüne böyle bir ayarın önerilmediğini belirten bir hata iletisi bildirilir.
Msg 5834, Level 16, State 1, Line 1
The affinity mask specified conflicts with the IO affinity mask specified. Use the override option to force this configuration.
Çalıştırmak RECONFIGURE WITH OVERRIDE seçenekler, CPU ve G/Ç bağıntılarının çakışmasına izin verir ve birbirini dışlamaz.
G/Ç bağlılık görevleri (gecikmeli yazıcı ve günlük yazıcısı gibi) doğrudan affinity I/O mask tarafından etkilenir. Gecikmeli yazıcı ve günlük yazıcı görevleri bağlı değilse, kilit monitörü veya denetim noktası gibi diğer kalıcı görevler için tanımlanan kuralların aynısını izler.
Var olmayan bir CPU'ya eşlemeye çalışan bir benzenşim maskesi belirtirseniz, RECONFIGURE komut hem istemci oturumuna hem de SQL Server hata günlüğüne bir hata iletisi bildirir. seçeneğinin RECONFIGURE WITH OVERRIDE kullanılması bu durumda hiçbir etkiye sahip değildir ve aynı yapılandırma hatası yeniden bildirilir.
Sql Server etkinliğini Windows işletim sistemi tarafından belirli iş yükü atamalarının dışında tutabilirsiniz. bir işlemciyi 1temsil eden bir bit ayarlarsanız, bu işlemci iş parçacığı ataması için SQL Server Veritabanı Altyapısı tarafından seçilir. Varsayılan olarak affinity mask ayarladığınızda 0, Microsoft Windows zamanlama algoritmaları iş parçacığı bağlılığını ayarlar. Sıfır olmayan bir değere ayarladığınızda affinity mask , SQL Server benzimi değeri seçim için uygun işlemcileri belirten bir bit maskesi olarak yorumlar.
Microsoft Windows, SQL Server iş parçacıklarının belirli işlemcilerde çalışmasını ayırarak sistemin Windows'a özgü işlemleri işlemesini daha iyi değerlendirebilir. Örneğin, iki SQL Server örneği (A ve B örneği) çalıştıran 8 CPU'lu bir sunucuda sistem yöneticisi ilk 4 CPU kümesini A örneğine ve ikinci 4 cpu kümesini B örneğine atamak için seçeneğini kullanabilir affinity mask . 32'den fazla işlemci yapılandırmak için ve affinity maskaffinity64 maskdeğerlerini ayarlayın. için affinity mask değerler aşağıdaki gibidir:
| Maskedeki bayt sayısı | CPU sayısı |
|---|---|
| 1 bayt | En fazla 8 CPU |
| 2 baytlık | En fazla 16 CPU |
| 3 bayt | En fazla 24 CPU |
| 4 baytlık | En fazla 32 CPU |
32'den fazla CPU'yu kapsayacak şekilde, ilk 32 CPU için 4 bayt affinity mask ve kalan CPU'lar için 4 bayt'a affinity64 mask kadar yapılandırın.
SQL Server işlemci bağlılığını ayarlamak uzmanlığa ihtiyaç duyan bir operasyon olduğundan, bunu yalnızca gerektiğinde kullanın. Çoğu durumda, varsayılan Windows ilişkilendirmesi en iyi performansı sağlar. Benzenşim maskelerini ayarlarken diğer uygulamalar için CPU gereksinimlerini göz önünde bulundurun. Daha fazla bilgi için Windows işletim sistemi belgelerinize bakın.
Uyarı
İşlemci kullanımını tek tek görüntülemek ve analiz etmek için İşlem İzleyicisi'ni kullanabilirsiniz.
seçeneğini belirtirken affinity I/O mask yapılandırma seçeneğiyle affinity mask birlikte kullanmanız gerekir. Ancak, daha önce belirtildiği gibi, affinity mask anahtarda ve affinity I/O mask seçenekte aynı CPU'yu etkinleştirmeyin. Her CPU'ya karşılık gelen bitler şu üç durumdan birinde olmalıdır:
-
0hemaffinity maskhem deaffinity I/O maskseçeneğinde. -
1seçeneğindeaffinity maskve0seçeneğindeaffinity I/O mask. -
0seçeneğindeaffinity maskve1seçeneğindeaffinity I/O mask.
Dikkat
Windows işletim sisteminde CPU ilişkilendirmesini ve SQL Server'da affinity mask'yu yapılandırmayın. Bu ayarlar aynı sonucu elde etmeye çalışır ve yapılandırmalar tutarsızsa, tahmin edilemeyen sonuçlara sahip olabilirsiniz. SQL Server CPU bağlılığı en iyi şekilde sp_configure yapılandırma seçeneği kullanılarak SQL Server'da yapılandırılır.
Örnekler
Seçeneğin affinity mask ayarlanmasına örnek olarak, işlemciler 1, 2 ve 5, 1, 2 ve 5 konumlarındaki bitler 1 olarak ayarlanmış ve 0, 3, 4, 6, ve 7 konumlarındaki bitler 0 olarak ayarlanmışsa, 0x26 (ondalık eşdeğeri 38) onaltılık değeri kullanılmalıdır. Bit konumlarını sağdan sola doğru numaralar.
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'affinity mask', 38;
RECONFIGURE;
GO
Aşağıdaki tabloda 8 CPU'lu bir sistemin değerleri gösterilmektedir affinity mask .
| Ondalık değer | İkili bit maskesi | İşlemcilerde SQL Server iş parçacıklarına izin ver |
|---|---|---|
1 |
00000001 |
0 |
3 |
00000011 |
0 ve 1 |
7 |
00000111 |
0, 1 ve 2 |
15 |
00001111 |
0, 1, 2 ve 3 |
31 |
00011111 |
0, 1, 2, 3 ve 4 |
63 |
00111111 |
0, 1, 2, 3, 4 ve 5 |
127 |
01111111 |
0, 1, 2, 3, 4, 5 ve 6 |
255 |
11111111 |
0, 1, 2, 3, 4, 5, 6 ve 7 |
Bu affinity mask seçenek gelişmiş bir seçenektir. Ayarı değiştirmek için sistem saklı yordamını kullanıyorsanızsp_configure, yalnızca affinity mask olarak ayarlandığında show advanced optionsdeğiştirebilirsiniz1. Transact-SQL RECONFIGURE komutu yürütülürken, yeni ayar SQL Server örneğinin yeniden başlatılmasına gerek kalmadan hemen geçerli olur.
Tekdüzen olmayan bellek erişimi (NUMA)
Donanım tabanlı olmayan tekdüzen bellek erişimi (NUMA) kullanılırken ve affinity mask ayarlanırsa, bir düğümdeki her zamanlayıcı kendi CPU'suna bağlanır.
affinity mask ayarlanmadığında, her zamanlayıcı NUMA düğümündeki CPU grubuna bağlıdır ve NUMA düğümüne N1 eşlenen bir zamanlayıcı, başka bir düğümle ilişkilendirilmiş CPU'larda değil, düğümdeki herhangi bir CPU üzerinde çalışmayı zamanlayabilir.
Tek bir NUMA düğümünde çalışan herhangi bir işlem yalnızca bu düğümdeki arabellek sayfalarını kullanabilir. Bir işlem birden çok düğümden CPU'lar üzerinde paralel olarak çalıştırıldığında, ilgili herhangi bir düğümden bellek kullanılabilir.
Lisans sorunları
Dinamik bağlılık, CPU lisanslaması ile sıkı bir şekilde kısıtlanır. SQL Server, lisans ilkesini ihlal eden seçeneklerin affinity mask yapılandırılmasına izin vermez.
Başlangıç
Belirtilen benşim maskesi SQL Server başlatma sırasında veya veritabanı ekleme sırasında lisans ilkesini ihlal ederse, altyapı katmanı başlangıç işlemini veya veritabanı ekleme/geri yükleme işlemini tamamlar ve ardından benişim maskesinin çalıştırma değerini sıfıra sıfırlar sp_configure ve SQL Server hata günlüğüne bir hata iletisi verir.
Yeniden yapılandırın
Transact-SQL komutu çalıştırılırken RECONFIGURE belirtilen benşim maskesi lisans ilkesini ihlal ederse, istemci oturumuna ve SQL Server hata günlüğüne bir hata iletisi bildirilir ve veritabanı yöneticisinin bensemme maskesini yeniden yapılandırması gerekir. Bu durumda hiçbir komut kabul edilmez.