Share via


Azure Stack Hub에서 성능을 최적화하는 SQL Server 모범 사례

이 문서에서는 Microsoft Azure Stack Hub VM(가상 머신)의 SQL Server 최적화하고 성능을 개선하기 위한 SQL Server 모범 사례를 제공합니다. Azure Stack Hub VM에서 SQL Server 실행하는 경우 온-프레미스 서버 환경에서 SQL Server 적용할 수 있는 동일한 데이터베이스 성능 조정 옵션을 사용합니다. Azure Stack Hub 클라우드에서 관계형 데이터베이스의 성능은 VM의 제품군 크기 및 데이터 디스크 구성을 비롯한 여러 요인에 따라 달라집니다.

SQL Server 이미지를 만들 때 Azure Stack Hub 포털에서 VM을 프로비전하는 것이 좋습니다. Azure Stack Hub 관리자 포털의 Marketplace 관리에서 SQL IaaS 확장을 다운로드하고 선택한 SQL Server VM 이미지를 다운로드합니다. 여기에는 SQL Server 2016 SP1, SQL Server 2016 SP2 및 SQL Server 2017이 포함되었습니다.

참고

이 문서에서는 전역 Azure Portal 사용하여 SQL Server VM을 프로비전하는 방법을 설명하지만, 이 지침은 운영 체제 디스크에 SSD를 사용할 수 없고 스토리지 구성에 약간의 차이가 있는 Azure Stack Hub에도 적용됩니다.

VM 이미지에서 SQL Server BYOL(bring-your-own-license)만 사용할 수 있습니다. Windows Server의 경우 기본 라이선스 모델은 종량제(PAYG)입니다. VM의 Windows Server 라이선스 모델에 대한 자세한 내용은 Azure Stack Hub Marketplace의 Windows Server FAQ 문서를 참조하세요.

Azure Stack Hub VM에서 SQL Server 최상의 성능을 얻는 것이 이 문서의 핵심입니다. 워크로드가 적은 경우 모든 권장 최적화 사항이 필요하지 않을 수 있습니다. 이러한 권장 사항을 평가할 때 성능 요구 사항 및 작업 패턴을 고려하세요.

참고

Azure VM의 SQL Server 대한 성능 지침은 이 문서를 참조하세요.

SQL Server 모범 사례에 대한 검사 목록

다음 검사 목록은 Azure Stack Hub VM에서 SQL Server 성능을 최적화하기 위한 것입니다.

영역 최적화
VM 크기 SQL Server Enterprise 버전의 경우 DS3 이상입니다.

SQL Server Standard 버전 및 웹 버전의 경우 DS2 이상
스토리지 Premium Storage를 지원하는 VM 제품군을 사용합니다.
디스크 최소 두 개의 데이터 디스크(로그 파일용 및 데이터 파일 및 TempDB용 디스크)를 사용하고 용량 요구 사항에 따라 디스크 크기를 선택합니다. SQL Server 설치하는 동안 기본 데이터 파일 위치를 이러한 디스크로 설정합니다.

데이터베이스 스토리지나 로깅을 위해 운영 체제 또는 임시 디스크를 사용하지 않습니다.
스토리지 공간을 사용하여 IO 처리량을 늘리려면 여러 Azure 데이터 디스크를 스트라이프합니다.

문서화된 할당 크기로 포맷합니다.
I/O 데이터 파일에 대해 즉시 파일 초기화를 사용하도록 설정합니다.

고정 증분(64MB-256MB)으로 데이터베이스의 자동 증가를 제한합니다.

데이터베이스에서 자동 축소를 사용하지 않도록 설정합니다.

운영 체제 디스크가 아닌 데이터 디스크에 기본 백업 및 데이터베이스 파일 위치를 설정합니다.

잠긴 페이지를 사용하도록 설정합니다.

SQL Server 서비스 팩 및 누적 업데이트를 적용합니다.
기능별 Blob Storage에 직접 백업합니다(사용 중인 SQL Server 버전에서 지원되는 경우).

이러한 최적화를 만드는 방법과이유에 대한 자세한 내용은 다음 섹션에 제공된 세부 정보 및 지침을 검토하세요.

VM 크기 지침

성능에 민감한 애플리케이션의 경우 다음 VM 크기를 사용하는 것이 좋습니다.

  • SQL Server Enterprise 버전: DS3 이상

  • SQL Server Standard 버전 및 웹 버전: DS2 이상

Azure Stack Hub에서는 DS와 DS_v2 VM 제품군 시리즈 간에 성능 차이가 없습니다.

스토리지 지침

Azure Stack Hub의 DS 시리즈(DSv2 시리즈와 함께) VM은 최대 운영 체제 디스크 및 IOPS(데이터 디스크 처리량)를 제공합니다. DS 또는 DSv2 시리즈의 VM은 선택한 디스크의 유형이나 크기에 관계없이 운영 체제 디스크에 대해 최대 1,000 IOPS와 데이터 디스크당 최대 2,300 IOPS를 제공합니다.

데이터 디스크 처리량은 VM 제품군 시리즈에 따라 고유하게 결정됩니다. 이 문서를 참조하여 VM 제품군 시리즈당 데이터 디스크 처리량을 식별할 수 있습니다.

참고

프로덕션 워크로드의 경우 DS 시리즈 또는 DSv2 시리즈 VM을 선택하여 운영 체제 디스크 및 데이터 디스크에서 가능한 최대 IOPS를 제공합니다.

Azure Stack Hub에서 스토리지 계정을 만들 때 이 기능을 Azure Stack Hub에서 사용할 수 없으므로 지역 복제 옵션이 적용되지 않습니다.

디스크 지침

Azure Stack Hub VM에는 세 가지 기본 디스크 유형이 있습니다.

  • 운영 체제 디스크: Azure Stack Hub VM을 만들 때 플랫폼은 하나 이상의 디스크( C 드라이브로 레이블 지정)를 운영 체제 디스크의 VM에 연결합니다. 이 디스크는 스토리지에 페이지 Blob으로 저장된 VHD입니다.

  • 임시 디스크: Azure Stack Hub VM에는 임시 디스크( D 드라이브로 레이블이 지정됨)라는 다른 디스크가 포함되어 있습니다. 이는 스크래치 공간에 사용할 수 있는 노드의 디스크입니다.

  • 데이터 디스크: 추가 디스크를 데이터 디스크로 VM에 연결할 수 있으며 이러한 디스크는 페이지 Blob으로 스토리지에 저장됩니다.

다음 섹션에서는 이러한 서로 다른 디스크를 사용하기 위한 권장 사항을 설명합니다.

운영 체제 디스크

운영 체제 디스크는 운영 체제의 실행 버전으로 부팅하고 탑재할 수 있는 VHD이며 C 드라이브로 레이블이 지정됩니다.

임시 디스크

D 드라이브로 레이블이 지정된 임시 스토리지 드라이브는 영구적이지 않습니다. D 드라이브에서 손실하지 않으려는 데이터를 저장하지 마세요. 여기에는 사용자 데이터베이스 파일 및 사용자 트랜잭션 로그 파일이 포함됩니다.

각 데이터 디스크가 데이터 디스크당 최대 2,300 IOPS를 제공하므로 데이터 디스크에 TempDB를 저장하는 것이 좋습니다.

데이터 디스크

  • 데이터 및 로그 파일에 데이터 디스크를 사용합니다. 디스크 스트라이프를 사용하지 않는 경우 Premium Storage를 지원하는 VM에서 두 개의 데이터 디스크를 사용합니다. 여기서 한 디스크에는 로그 파일이 포함되고 다른 디스크에는 데이터 및 TempDB 파일이 포함됩니다. 각 데이터 디스크는 Azure Stack Hub에서 지원되는 VM 크기에 설명된 대로 VM 제품군에 따라 여러 IOPS를 제공합니다. 스토리지 공간과 같은 디스크 스트라이프 기술을 사용하는 경우 모든 데이터와 로그 파일을 동일한 드라이브(TempDB 포함)에 배치합니다. 이 구성은 특정 시간에 필요한 파일에 관계없이 SQL Server 사용할 수 있는 최대 IOPS 수를 제공합니다.

참고

포털에서 SQL Server VM을 프로비전하는 경우 스토리지 구성을 편집하는 옵션이 있습니다. 구성에 따라 Azure Stack Hub는 하나 이상의 디스크를 구성합니다. 여러 디스크가 단일 스토리지 풀로 결합됩니다. 이 구성에서는 데이터 및 로그 파일이 함께 배치됩니다.

  • 디스크 스트라이프: 더 많은 처리량을 위해 데이터 디스크를 추가하고 디스크 스트라이프를 사용할 수 있습니다. 필요한 데이터 디스크 수를 확인하려면 로그 파일 및 데이터 및 TempDB 파일에 필요한 IOPS 수를 분석합니다. IOPS 제한은 VM 크기에 기반하지 않고 VM 시리즈 패밀리를 기반으로 하는 데이터 디스크당입니다. 그러나 네트워크 대역폭 제한은 VM 크기를 기반으로 합니다. 자세한 내용은 Azure Stack Hub의 VM 크기에 대한 테이블을 참조하세요. 다음 지침을 사용하세요.

    • Windows Server 2012 이상의 경우 다음 지침과 함께 스토리지 공간을 사용합니다.

      1. 분할 정렬 오류로 인한 성능 영향을 방지하기 위해 OLTP(온라인 트랜잭션 처리) 워크로드의 경우 인터리브(스트라이프 크기)를 64KB(65,536바이트)로 설정하고 데이터 웨어하우징 워크로드에 대해 256KB(262,144바이트)를 설정합니다. 이는 PowerShell로 설정되어야 합니다.

      2. 열 수를 실제 디스크 수로 설정합니다. 8개 이상의 디스크를 구성할 때 PowerShell을 사용합니다(서버 관리자 UI 아님).

        예를 들어 다음 PowerShell은 인터리브 크기가 64KB로 설정되고 열 수가 2로 설정된 새 스토리지 풀을 만듭니다.

        $PoolCount = Get-PhysicalDisk -CanPool $True
        $PhysicalDisks = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*2" -or $_.FriendlyName -like "*3"}
        
        New-StoragePool -FriendlyName "DataFiles" -StorageSubsystemFriendlyName "Storage Spaces*" -PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName "DataFiles" -Interleave 65536 -NumberOfColumns 2 -ResiliencySettingName simple -UseMaximumSize |Initialize-Disk -PartitionStyle GPT -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisks" -AllocationUnitSize 65536 -Confirm:$false
        
  • 예상되는 부하에 따라 스토리지 풀에 연결되는 디스크 수를 결정합니다. VM 크기가 다르면 연결된 데이터 디스크 수도 다를 수 있다는 점에 유의하세요. 자세한 내용은 Azure Stack Hub에서 지원되는 VM 크기를 참조하세요.

  • 데이터 디스크에 대해 가능한 최대 IOPS를 얻으려면 VM 크기 에서 지원하는 최대 데이터 디스크 수를 추가하고 디스크 스트라이프를 사용하는 것이 좋습니다.

  • NTFS 할당 단위 크기: 데이터 디스크의 서식을 지정할 때는 TempDB뿐만 아니라 데이터 및 로그 파일에 64KB 할당 단위 크기를 사용하는 것이 좋습니다.

  • 디스크 관리 사례: 데이터 디스크를 제거할 때 변경 중에 SQL Server 서비스를 중지합니다. 또한 성능 향상을 제공하지 않으므로 디스크의 캐시 설정을 변경하지 마세요.

경고

이러한 작업 중에 SQL 서비스를 중지하지 못하면 데이터베이스가 손상될 수 있습니다.

I/O 지침

  • 초기 파일 할당에 필요한 시간을 줄이기 위해 즉시 파일 초기화를 사용하도록 설정하는 것이 좋습니다. 인스턴트 파일 초기화를 활용하려면 SE_MANAGE_VOLUME_NAME 사용하여 SQL Server(MSSQLSERVER) 서비스 계정을 부여하고볼륨 유지 관리 작업 수행 보안 정책에 추가합니다. Azure에 대한 SQL Server 플랫폼 이미지를 사용하는 경우 기본 서비스 계정(NT Service\MSSQLSERVER)이 볼륨 유지 관리 작업 수행 보안 정책에 추가되지 않습니다. 즉, 빠른 파일 초기화는 SQL Server Azure 플랫폼 이미지에서 사용하도록 설정되지 않습니다. SQL Server 서비스 계정을 볼륨 유지 관리 작업 수행 보안 정책에 추가한 후 SQL Server 서비스를 다시 시작합니다. 이 기능을 사용하기 위한 보안 고려 사항이 있을 수 있습니다. 자세한 내용은 데이터베이스 파일 초기화를 참조하세요.

  • 자동 증가 는 예기치 않은 성장을 위한 대체입니다. 자동 증가로 데이터 및 로그 증가를 매일 관리하지 마세요. 자동 증가가 사용되는 경우 크기 스위치를 사용하여 파일을 미리 증분합니다.

  • 자동 축소를 사용하지 않도록 설정하여 성능에 부정적인 영향을 미칠 수 있는 불필요한 오버헤드를 방지합니다.

  • 기본 백업 및 데이터베이스 파일 위치를 설정합니다. 이 문서의 권장 사항을 사용하고 서버 속성 창에서 변경합니다. 지침은 데이터 및 로그 파일의 기본 위치 보기 또는 변경(SQL Server Management Studio)을 참조하세요. 다음 스크린샷은 이러한 변경을 수행할 위치를 보여줍니다.

    기본 위치 보기 또는 변경

  • 잠긴 페이지를 사용하도록 설정하여 IO 및 페이징 작업을 줄입니다. 자세한 내용은 메모리 내 페이지 잠금 옵션 사용(Windows)을 참조하세요.

  • 백업을 포함하여 Azure Stack Hub에서 전송할 때 데이터 파일을 압축하는 것이 좋습니다.

기능별 지침

더 많은 고급 구성 기술을 사용하면 일부 배포에서 추가적인 성능 이점을 얻을 수 있습니다. 다음 목록에서는 더 나은 성능을 달성하는 데 도움이 될 수 있는 몇 가지 SQL Server 기능을 강조 표시합니다.

  • Azure Storage에 백업합니다. Azure Stack Hub VM에서 실행되는 SQL Server 백업할 때 URL에 SQL Server 백업을 사용할 수 있습니다. 이 기능은 SQL Server 2012 SP1 CU2부터 사용할 수 있으며 연결된 데이터 디스크에 백업하는 것이 좋습니다.

    Azure Storage를 사용하여 백업 또는 복원하는 경우 URL에 백업 SQL Server 모범 사례 및Microsoft Azure에 저장된 백업에서 문제 해결 및 복원에 제공된 권장 사항을 따릅니다. Azure VM에서 SQL Server 대한 자동화된 백업을 사용하여 이러한 백업을 자동화할 수도 있습니다.

  • Azure Stack Hub 스토리지에 백업합니다. Azure Storage에 백업하는 것과 비슷한 방식으로 Azure Stack Hub 스토리지에 백업할 수 있습니다. SSMS(SQL Server Management Studio) 내에 백업을 만들 때 구성 정보를 수동으로 입력해야 합니다. SSMS를 사용하여 스토리지 컨테이너 또는 공유 액세스 서명을 만들 수 없습니다. SSMS는 Azure Stack Hub 구독이 아닌 Azure 구독에만 연결됩니다. 대신 Azure Stack Hub 포털 또는 PowerShell을 사용하여 스토리지 계정, 컨테이너 및 공유 액세스 서명을 만들어야 합니다.

    SQL Server Backup

    참고

    공유 액세스 서명은 문자열에 선행 '?'이 없는 Azure Stack Hub 포털의 SAS 토큰입니다. 포털에서 복사 함수를 사용하는 경우 토큰이 SQL Server 내에서 작동하려면 선행 '?'을 삭제해야 합니다.

    백업 대상을 설정하고 SQL Server 구성한 후에는 Azure Stack Hub Blob Storage에 백업할 수 있습니다.

다음 단계

서비스 사용 또는 Azure Stack Hub용 앱 빌드