Sdílet prostřednictvím


Konfigurace serveru: Nastavení affinity pro I/O masku

platí pro:SQL Server

K provádění multitaskingu systém Windows někdy přesouvá procesní vlákna mezi různými procesory. I když je tato aktivita z hlediska operačního systému efektivní, může tato aktivita snížit výkon SQL Serveru při vysokém zatížení systému, protože každá mezipaměť procesoru se opakovaně načítá s daty. Přiřazení procesorů ke konkrétním vlákenm může za těchto podmínek zlepšit výkon odstraněním opětovného načítání procesoru; takové přidružení mezi vláknem a procesorem se nazývá spřažení procesoru.

SQL Server podporuje spřažení procesoru se dvěma možnostmi masky spřažení: affinity mask (označované také jako maska spřažení procesoru) a affinity I/O mask. Další informace o affinity mask najdete v tématu Konfigurace serveru: maska spřažení. Podpora spřažení procesoru a vstupně-výstupních operací pro servery s 33 až 64 procesory vyžaduje, abyste také použili možnosti konfigurace serveru spřažení64 maska a spřažení64 I/O maska.

Poznámka:

Podpora spřažení pro servery s procesory 33 až 64 je dostupná pouze v 64bitových operačních systémech.

Možnost affinity I/O mask vytvoří vazbu vstupně-výstupních operací disku SQL Serveru na zadanou podmnožinu procesorů. V špičkových prostředích pro online transakční zpracování (OLTP) na SQL Serveru může toto rozšíření zvýšit výkon vláken SQL Serveru provádějících vstupně-výstupní operace. Toto vylepšení nepodporuje spřažení hardwaru pro jednotlivé disky nebo řadiče disků.

Hodnota určuje affinity I/O mask , které procesory v multiprocesorovém počítači mají nárok na zpracování vstupně-výstupních operací disku SQL Serveru. Maska je bitmapový obrázek, ve kterém pravý bit určuje procesor nejnižšího řádu (0), bit přímo vlevo určuje procesor dalšího nejnižšího řádu (1) a tak dále. Chcete-li nakonfigurovat více než 32 procesorů, nastavte affinity I/O mask a affinity64 I/O mask.

Hodnoty pro affinity I/O mask jsou následující:

Bajty v masce Počet procesorů
1 bajt Až 8 procesorů
2 bajty Až 16 procesorů
3 bajty Až 24 procesorů
4 bajty Až 32 procesorů

Pokud chcete pokrýt více než 32 procesorů, nakonfigurujte pro prvních 32 procesorů 4 bajt affinity I/O mask a až 4 bajty affinity64 I/O mask pro zbývající procesory.

Bit 1 v modelu vstupně-výstupních operací spřažení určuje, že odpovídající procesor má nárok na provádění vstupně-výstupních operací disku SQL Serveru. Bit 0 určuje, že pro odpovídající procesor by neměly být naplánované žádné vstupně-výstupní operace disku SQL Serveru. Pokud jsou všechny bity nastavené na 0hodnotu nebo affinity I/O mask nejsou zadané, je vstupně-výstupní operace disku SQL Serveru naplánována na některý z procesorů, které mají nárok na zpracování vláken SQL Serveru.

Vzhledem k tomu, že nastavení možnosti SQL Serveru affinity I/O mask je specializovaná operace, použijte ji pouze v případě potřeby. Ve většině případů nabízí výchozí spřažení Windows nejlepší výkon.

Při zadávání affinity I/O mask této možnosti ji musíte používat s konfigurační možností affinity mask. Nepovolujte stejný procesor v přepínači affinity I/O mask i možnosti affinity mask . Bity odpovídající jednotlivým procesorům by měly být v jednom z následujících tří stavů:

  • 0 affinity I/O mask možnost i affinity mask možnost.
  • 1 v možnosti affinity I/O mask a 0 v affinity mask možnosti.
  • 0 v možnosti affinity I/O mask a 1 v affinity mask možnosti.

Tato affinity I/O mask možnost je rozšířená. Pokud ke změně nastavení používáte sp_configure systémovou uloženou proceduru, můžete změnit affinity I/O mask pouze v případě, že show advanced options je nastaveno na 1. V SQL Serveru vyžaduje překonfigurování možnosti affinity I/O mask restartování instance SQL Serveru.

Upozornění

Nekonfigurujte spřažení procesoru v operačním systému Windows ani nekonfigurujte affinity mask v SQL Serveru. Tato nastavení se snaží dosáhnout stejného výsledku a pokud jsou konfigurace nekonzistentní, můžete mít nepředvídatelné výsledky. Spřažení CPU serveru SQL je nejlépe konfigurováno pomocí sp_configure systémové uložené procedury v SQL Serveru.