SQL Server 추적 플래그 1800 트랜잭션 로그 볼륨 I/O(입출력) 맞춤
Summary: Microsoft SQL 추적 플래그 1800은 SQL 트랜잭션 로그 볼륨에 대해 SQL Server 4k I/O 맞춤을 사용하도록 설정하는 설정입니다. 이 문서에서는 트랜잭션 로그가 잘못 정렬된 I/O의 원인과 추적 플래그 1800을 사용할 때의 이점을 살펴봅니다. 이는 가상화된 SQL 솔루션을 사용하는 Dell 및 기타 공급업체 스토리지 솔루션에 적용됩니다. ...
Symptoms
잘못 정렬된 I/O가 발생하면 애플리케이션에 데이터베이스에 대량의 데이터를 삽입하는 기간 동안 트랜잭션 로그 쓰기에 대한 쓰기 레이턴시가 증가할 수 있습니다.
잠재적인 정렬 오류를 감지하는 자세한 예는 이 Broadcom 블로그에서 확인할 수 있습니다. SQL Server 측의 "Process Monitor" 또는 "vSAN I/O Insight"와 같은 vSphere 툴을 활용하여 문제를 진단합니다.
정렬 오류 I/O의 영향은 워크로드 패턴에 따라 크게 달라집니다. 일반적으로 순차적 쓰기 I/O가 클 경우 그 영향이 더 크게 나타납니다.
추적 플래그 1800이 없는 쓰기 성능 관점의 대기 시간 예:A latency example from a write performance perspective without the Trace Flag 1800:

추적 플래그 1800이 설정된 경우:
Cause
vSphere ESXi는 물리적 섹터 크기가 512바이트(512n 형식)인 게스트 OS에 VMware VMDK(Virtual Machine Disk)를 노출합니다.
SQL Server는 고급 메커니즘을 사용하여 트랜잭션 로그 I/O 블록 크기를 계산합니다. SQL은 트랜잭션 로그 파일이 배치되는 VMDK의 물리적 섹터 크기를 사용하여 트랜잭션 로그 I/O 블록 크기를 맞춥니다. 이는 기존에 파일 시스템(NTFS) 할당 단위 크기(사용자 제어)를 사용하는 데이터 볼륨의 경우 다릅니다.
I/O 디스크 정렬은 디스크의 물리적 섹터에 정렬되는 방식으로 스토리지 미디어에 데이터가 기록되도록 합니다. 이렇게 하면 쓰기 성능에 영향을 줄 수 있는 잘못 정렬된 I/O를 방지하는 데 도움이 됩니다.
참고: 이는 스토리지 솔루션에만 국한된 것이 아니며, 솔루션마다 잘못 정렬된 I/O를 자체적인 방식으로 관리하므로 동일한 증상이 나타나지 않을 수 있습니다. 어쨌든 항상 스토리지 솔루션 모범 사례에 따라 IO를 조정하는 것이 좋습니다.
Resolution
추적 플래그 1800을 사용하면 SQL 트랜잭션 로그 볼륨이 4k 경계와 제대로 정렬되었는지 확인할 수 있습니다. 기본 스토리지 솔루션의 볼륨 블록 크기에 따라 쓰기 성능이 최적화됩니다.
추적 플래그 1800을 사용하도록 설정하기 전에 Microsoft SQL 팀에 문의하여 잠재적인 정렬 오류 및 구성 지침을 확인합니다.
참고: 추적 플래그 1800을 사용하려면 SQL Server 서비스를 다시 시작해야 합니다. DBCC(데이터베이스 일관성 검사기) "DBCC TRACE ON" 명령을 사용하여 플래그를 적용해도 아무런 효과가 없습니다.
Additional Information
Microsoft는 서로 다른 디스크에 복제 그룹이 있는 가용성 그룹에 대한 추적 플래그 1800을 참조 합니다. 추적 플래그는 일반적인 모범 사례 성능에서도 효과적인 것으로 입증되었습니다.