적용 대상: SQL Server 2025(17.x) 미리 보기
max ucs send boxcars
서버 구성 옵션을 사용하여, 기본 복제본에서 보조 복제본으로 메시지를 전송할 때 사용할 수 있는 UCS 박스카의 최대 개수를 설정합니다. 이 옵션은 WAN(광역 네트워크)을 통해 Always On 가용성 그룹의 복제본 간에 데이터 흐름을 제어하는 데 유용합니다.
비고
max ucs send boxcars
서버 구성 옵션은 SQL Server 2025(17.x) 미리 보기부터 사용할 수 있습니다.
개요
UCS(유니버설 통신 서비스) 프로토콜은 SQL Server Always On 가용성 그룹에서 주 복제본과 보조 복제본 간에 로그 블록을 보내는 데 사용됩니다. UCS는 주 복제본이 보조 복제본에서 변경 내용이 강화되었다는 승인을 받는 데 걸리는 시간을 측정하여 보조 복제본이 주 복제본에 뒤처지는지 여부를 결정합니다.
UCS는 엔드포인트 간에 통신하는 동안 보조 복제본이 주 복제본의 변경 내용을 적용할 수 없다는 것을 감지하면 흐름 제어 에 들어갑니다. 이 프로세스는 지연의 대부분이 보조 복제본의 처리에 기인하기 때문에 네트워크 지연이 기여 요인이 아닌 빠른 로컬 네트워크에서 잘 작동합니다. 그러나 UCS가 지리적 복제와 같이 상당한 네트워크 지연으로 WAN(광역 네트워크)을 통해 통신하는 경우 네트워크 대기 시간이 증가하면 보조 복제본이 뒤쳐질 수 있습니다. 이 시나리오에서는 흐름 제어가 비효율적입니다.
이 네트워크 지연 시나리오를 해결하려면 UCS에서 흐름 제어 입력을 연기해야 합니다. 이는 주 복제본에서 보조 복제본으로 메시지를 보내는 데 사용할 수 있는 UCS 박스카 수 제한을 변경하여 수행됩니다. UCS 패킷은 네트워크를 통한 보다 효율적인 전송을 위해 박스카로 그룹화됩니다. UCS 박스카의 최대 수를 늘리면 한 번에 더 많은 패킷을 전송할 수 있으며, 이로 인해 흐름 제어 입력이 지연됩니다.
Windows 레지스트리를 사용하여 UCS boxcars 덮어쓰기
SQL Server 2022(16.x)부터는 초기화 중에 SQL Server가 읽는 레지스트리 값을 만들어 UCS 박스카 수를 제어할 수 있습니다.
- 레지스트리 키:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.<instance_name>\MSSQLServer\ServiceBroker
- 값 이름:
MaxPendingSend
- 값 형식:
REG_SZ
중요합니다
SQL Server는 형식을 확인하고 값이 예상 형식이 아닌 경우 무시하므로 값을 REG_SZ
생성하지 않고 REG_DWORD
만들어야 합니다.
이 메커니즘에는 다음과 같은 몇 가지 단점이 있습니다.
데이터베이스 관리자는 SQL Server 인스턴스와 동일한 컴퓨터에서 또는 원격으로 레지스트리에 액세스할 수 없을 수 있습니다.
데이터베이스 관리자와 시스템 관리자는 일반적으로 서로 다른 책임 집합을 가진 두 가지 고유한 역할이므로 사용 권한 집합이 다릅니다.
sp_configure로 UCS boxcars 재정의하기
SQL Server 2025(17.x) 프리뷰부터, 다음 고려 사항과 함께 max ucs send boxcars
서버 구성 옵션을 사용하여 UCS 박스카 수를 제어할 수 있습니다.
이 설정은 고급
sp_configure
옵션입니다.최소값은
256
(기본값), 최대값은2048
. 기본값으로 설정하려면0
값을 사용할 수 있습니다.이 구성 옵션은 레지스트리 설정보다 우선합니다.
이 설정은 SQL Server 인스턴스를 다시 시작한 후에 적용됩니다.
USE master;
GO
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure `max ucs send boxcars`, 1234;
RECONFIGURE;
GO
우선 순위
다음 표는 사용하는 재정의 메커니즘에 따라 우선 순위의 예를 제시합니다.
규칙 |
sp_configure 값 |
레지스트리 값 | 유효 값 |
---|---|---|---|
max ucs send boxcars 기본값이 아닌 값(즉, 256과 같지 않음)이 레지스트리 값보다 우선합니다. |
1024 | 2048 | 1024 |
기본값 256으로 설정된 경우 max ucs send boxcars 레지스트리 값이 적용됩니다. |
256 | 2048 | 2048 |
max ucs send boxcars 가 0 로 설정되면 기본값이 사용되어 레지스트리 값보다 우선합니다. 이렇게 하면 데이터베이스 관리자가 레지스트리를 편집할 수 있는 권한이 없는 경우에도 기본값을 적용할 수 있습니다. |
0 | 2048 | 256 |
비고
새 구성을 적용하려면, 서버 구성 옵션을 설정한 후 RECONFIGURE
를 실행해야 합니다. 이 설정은 SQL Server 인스턴스를 다시 시작한 후에만 적용됩니다.
UCS 박스카 수에 대해 기본값이 아닌 값이 적용되는 경우 SQL Server는 정보 메시지를 오류 로그에 기록합니다. 정보 메시지에는 유효 값과 재정의 원본인 sp_configure
또는 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.
메시지에 대한 내부 오류 코드는 .입니다 33338
. 기본값이 설정된 경우 메시지가 기록되지 않습니다.