Dela via


Serverkonfiguration: max ucs skicka boxcars

Gäller för: Förhandsversion av SQL Server 2025 (17.x)

max ucs send boxcars Använd serverkonfigurationsalternativet för att styra det maximala antalet UCS-boxcars som kan användas för att skicka meddelanden från den primära till den sekundära repliken. Det här alternativet är användbart för att styra dataflödet mellan repliker i en AlwaysOn-tillgänglighetsgrupp över ett WAN(Wide-Area Network).

Anmärkning

Serverkonfigurationsalternativet max ucs send boxcars är tillgängligt från och med förhandsversionen av SQL Server 2025 (17.x).

Översikt

UCS-protokollet (Universal Communication Service) används av SQL Server AlwaysOn-tillgänglighetsgrupper för att skicka loggblock mellan primära och sekundära repliker. UCS fastställer om den sekundära repliken ligger bakom den primära repliken genom att mäta den tid det tar för den primära att få en bekräftelse på att ändringen har implementerats på den sekundära repliken.

Medan UCS kommunicerar mellan slutpunkter, anger den flödeskontroll när den upptäcker att den sekundära repliken inte kan hålla jämna steg med att tillämpa ändringar från den primära repliken. Den här processen fungerar bra för snabba lokala nätverk där nätverksfördröjning inte är en bidragande faktor, eftersom den största delen av fördröjningen beror på bearbetning på den sekundära repliken. Men när UCS kommunicerar via ett wan-nätverk (wide-area network) med betydande nätverksfördröjning, till exempel vid geo-replikering, kan den ökade nätverksfördröjningen leda till att den sekundära repliken hamnar på efterkälken. I det här scenariot är flödeskontrollen ineffektiv.

För att hantera det här nätverksfördröjningsscenariot måste UCS skjuta upp inträdandet i flödeskontroll. Detta uppnås genom att ändra gränsen för antalet UCS-boxcars som kan användas för att skicka meddelanden från den primära till den sekundära repliken. UCS-paket grupperas tillsammans i en lådbil för att möjliggöra effektivare överföring via ett nätverk. När du ökar det maximala antalet UCS-boxcars kan fler paket överföras åt gången, vilket i sin tur kan fördröja aktiveringen av flödeskontrollen.

Åsidosätt UCS-boxcars genom Windows-registret

Från och med SQL Server 2022 (16.x) kan du styra antalet UCS-rutor genom att skapa ett registervärde som SQL Server läser under initieringen.

  • Registernyckel: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.<instance_name>\MSSQLServer\ServiceBroker
  • Värdenamn: MaxPendingSend
  • Värdetyp: REG_SZ

Viktigt!

Du måste skapa värdet som REG_SZ och inte REG_DWORD, eftersom SQL Server kontrollerar typen och ignorerar värdet om det inte är den förväntade typen.

Den här mekanismen har flera nackdelar:

  • Databasadministratörer kanske inte har åtkomst till registret, antingen på samma dator som SQL Server-instansen eller via fjärranslutning.

  • Databasadministratörer och systemadministratörer är vanligtvis två olika roller med olika ansvarsuppsättningar och därmed olika behörighetsuppsättningar.

Åsidosätt UCS-lådbilar med sp_configure

Från och med SQL Server 2025 (17.x) Preview kan du styra antalet UCS-boxcars med max ucs send boxcars serverkonfigurationsalternativet med följande överväganden:

  • Den här inställningen är ett avancerat sp_configure alternativ.

  • Det minsta värdet är 256 (standardvärdet) och det maximala värdet är 2048. Du kan dock använda värdet 0 för för att återställa värdet till standardvärdet.

  • Det här konfigurationsalternativet har företräde framför registerinställningen.

  • Den här inställningen börjar gälla efter att en SQL Server-instans har startats om.

USE master;
GO

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO

EXEC sp_configure `max ucs send boxcars`, 1234;
RECONFIGURE;
GO

Prioritetsordning

I följande tabell visas exempel på prioritet, beroende på vilken åsidosättningsmekanism du använder.

Regel sp_configure värde Registervärde Effektivt värde
max ucs send boxcars värden som inte är standardvärden (dvs. inte lika med 256) har företräde framför registervärdena. 1024 2048 1024
Om max ucs send boxcars är inställt på standardvärdet 256 börjar registervärdet gälla. 256 2048 2048
Om max ucs send boxcars är inställt på 0använder den standardvärdet, som har företräde framför registervärdet. På så sätt kan databasadministratörerna fortfarande använda standardvärdet om databasadministratörerna inte har behörighet att redigera registret. 0 2048 256

Anmärkningar

Du måste köra RECONFIGURE när du har angett max ucs send boxcars serverkonfigurationsalternativet för att tillämpa den nya konfigurationen. Inställningen börjar gälla först när SQL Server-instansen har startats om.

När ett icke-standardvärde gäller för antalet UCS-boxcars loggar SQL Server ett informationsmeddelande i felloggen. Informationsmeddelandet innehåller det effektiva värdet och åsidosättningskällan: sp_configure eller registry.

2024-10-08 13:38:26.11 Server      UCS transport default sending capacity is overridden with the value of 1234. Override source: sp_configure. This is an informational message only. No user action is required.

Den interna felkoden för meddelandet är 33338. Meddelandet loggas inte om standardvärdet har angetts.