영업: 1-800-867-1380

Azure 가상 컴퓨터의 SQL Server에 대한 성능 모범 사례

업데이트 날짜: 2014년 6월

Azure 가상 컴퓨터에서 SQL Server를 실행하는 동안 온-프레미스 서버 환경에서 SQL Server에 적용할 수 있는 동일한 데이터베이스 성능 튜닝 옵션을 계속 사용하는 것이 좋습니다. 그러나 공용 클라우드에서 관계형 데이터베이스의 성능은 가상 컴퓨터 크기 및 데이터 디스크 구성과 같은 많은 요소에 따라 달라집니다.

이 항목에서는 Azure 가상 컴퓨터(VM)에서 SQL Server 성능을 최적화하는 모범 사례를 소개합니다.

중요 정보: 전체 정보는 Azure 가상 컴퓨터의 SQL Server에 대한 성능 지침 백서를 참조하세요.

다음은 사용자가 수행할 수 있는 빠른 검사 목록입니다.

  • SQL Server VM에 최소 표준 계층 A2를 사용합니다.

  • 저장소 계정과 SQL Server VM을 동일한 지역으로 유지합니다.

  • 저장소 계정에 Azure 지역에서 복제를 사용하지 않습니다.

  • 데이터베이스 저장소 또는 로깅에 대한 운영 체제나 임시 디스크를 사용하지 않습니다.

  • Azure 데이터 디스크 캐싱 옵션을 사용하지 않습니다(캐싱 정책 = 없음).

  • 여러 Azure 데이터 디스크를 스트라이프하여 IO 처리량을 늘립니다.

  • 문서화된 할당 크기로 포맷합니다.

  • 데이터 및 로그 파일 I/O 경로를 분리하여 데이터 및 로그에 대한 전용 IOP를 얻습니다.

  • 데이터베이스 페이지 압축 기능을 사용합니다.

  • 데이터 파일의 인스턴트 파일 초기화를 사용합니다.

  • 데이터베이스에서 자동 증가를 제한하거나 사용하지 않습니다.

  • 데이터베이스에서 자동 축소를 사용하지 않습니다.

  • 시스템 데이터베이스를 포함하여 모든 데이터베이스를 데이터 디스크로 옮깁니다.

  • SQL Server 오류 로그 및 추적 파일 디렉터리를 데이터 디스크로 옮깁니다.

  • SQL Server 성능 수정을 적용합니다.

  • 기본 위치에 설치합니다.

  • 잠긴 페이지를 사용합니다.

  • blob 저장소에 직접 백업합니다.

자세한 정보는 다음 하위 섹션에서 제공하는 지침을 따르세요.

성능에 민감한 응용 프로그램은 다음 가상 컴퓨터 크기를 사용하는 것이 좋습니다.

  • SQL Server Enterprise Edition: 표준 계층 A3 이상

  • SQL Server Standard Edition: 표준 계층 A2 이상

지원되는 가상 컴퓨터 크기에 대한 최신 정보는 Azure를 위한 가상 컴퓨터 및 클라우드 서비스 크기를 참조하세요.

또한 전송 지연을 줄이기 위해 SQL Server 가상 컴퓨터가 있는 데이터 센터에서 Azure 저장소 계정을 만드는 것이 좋습니다. 저장소 계정을 만들 때 여러 디스크에서 일관된 기록 순서를 보장할 수 없기 때문에 지역에서 복제 기능을 사용하지 않습니다. 대신 두 개의 Azure 데이터 센터 간에 SQL Server 재해 복구 기술을 구성하는 것을 고려하세요. 자세한 내용은 Azure 가상 컴퓨터의 SQL Server에 대한 고가용성 및 재해 복구를 참조하세요.

Azure 가상 컴퓨터를 만들 때 플랫폼에서는 운영 체제 디스크용으로 하나 이상의 디스크를 VM에 연결합니다. 이 디스크는 저장소에 페이지 Blob으로 저장된 VHD입니다. 추가 디스크를 데이터 디스크로 가상 컴퓨터에 연결할 수도 있으며 이러한 디스크는 저장소에 페이지 Blob으로 저장됩니다. Azure 가상 컴퓨터에는 임시 디스크라는 다른 디스크가 있습니다. 이 디스크는 스크래치 공간에 사용할 수 있는 노드에 있습니다.

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

운영 체제 디스크의 기본 캐싱 정책은 읽기/쓰기입니다. 성능에 민감한 응용 프로그램은 운영 체제 디스크 대신 데이터 디스크를 사용하는 것이 좋습니다. 데이터 디스크에 대해 없음인 기본 캐싱 정책은 변경하지 않고 가상 컴퓨터에 하나 이상의 데이터 디스크를 연결합니다.

D: 드라이브로 레이블이 지정된 임시 저장소 드라이브는 Azure Blob 저장소에 저장되지 않습니다. D: 드라이브에 데이터 또는 로그 파일을 저장하지 마세요.

D 시리즈 VM(가상 컴퓨터)을 사용하는 경우 tempdb 및/또는 버퍼 풀 확장만 D 드라이브에 저장합니다. 다른 VM 시리즈와 달리 D 시리즈 VM의 D 드라이브는 SSD 기반입니다. 임시 개체를 많이 사용하거나 메모리에 들어가지 않는 작업 집합이 있는 작업의 성능을 향상시킬 수 있습니다. 자세한 내용은 Azure VM의 SSD를 사용하여 SQL Server TempDB 및 버퍼 풀 확장 저장(영문)을 참조하세요.

  • 데이터 디스크 개수: 처리량에 민감한 응용 프로그램은 VM 크기가 허용하는 최대 디스크 개수를 연결하는 것이 좋습니다. 최대 IOP 제한 내에서 작업량이 양호하면 데이터 디스크를 추가해도 대기 시간이 개선되지 않습니다.

    디스크당 최대 IOP에 대한 정보는 Azure의 가상 컴퓨터 및 클라우드 서비스 크기를 참조하세요.

  • 캐싱 정책: 데이터 디스크에서는 읽기 캐싱과 쓰기 캐싱을 둘 다 사용하지 않도록 기본적으로 설정되어 있습니다. 이 기본 설정을 사용하고 데이터 디스크에 대해 캐싱을 사용하도록 설정하지 마세요. 디스크 캐싱에 대한 자세한 내용은 디스크 및 이미지 관리를 참조하세요.

    디스크 캐싱 구성에 대한 지침은 Set-AzureOSDisk, Set-AzureDataDiskAzure PowerShell Cmdlet을 사용하여 가상 컴퓨터 관리 항목을 참조하세요.

  • NTFS 할당 단위 크기: 데이터 디스크를 포맷할 때 tempdb뿐만 아니라 데이터 및 로그 파일에 대해 64KB 할당 단위 크기를 사용하는 것이 좋습니다.

  • 디스크 스트라이프: 다음 지침을 준수하는 것이 좋습니다.

    • Windows 8/Windows Server 2012 이상에서는 저장소 공간을 사용합니다. 파티션 정렬 문제로 성능에 좋지 않은 영향을 미치지 않도록 스트라이프 크기를 OLTP 작업은 64KB, 데이터 웨어하우징 작업은 256KB로 설정합니다. 추가적으로 column count = number of physical disks를 설정합니다. 저장소 공간을 구성하는 방법에 대한 자세한 정보는 Windows PowerShell의 저장소 공간 Cmdlet을 참조하세요.

    • Windows 2008 R2 이전 버전에서는 동적 디스크(OS 스트라이프 볼륨)를 사용할 수 있으며 스트라이프 크기는 항상 64KB입니다. 이 옵션은 Windows 8/Windows Server 2012부터 사용되지 않습니다. 자세한 정보는 가상 디스크 서비스는 Windows 저장소 관리 API로 전환되고 있음의 지원 정책을 참조하세요.

  • 데이터 및 로그 파일 배치: 작업에 로그가 중요하지 않고 전용 IOP가 필요 없으면 하나의 저장소 풀만 구성할 수 있습니다. 그렇지 않으면 VM이 4개 이상의 디스크 연결을 허용하므로 데이터와 로그 파일을 별도의 디스크 또는 저장소 풀에 배치합니다. 표준 계층 A2는 데이터 파일과 tempdb에 3개의 데이터 디스크를 구성하고, 로그 파일에 하나의 데이터 디스크를 구성하는 것이 좋습니다. 현재 작업이 데이터와 로그 중 어디에 민감하냐에 따라 데이터 또는 로그 저장소 풀에 전용으로 할당할 디스크 개수를 조정할 수 있습니다.

  • I/O를 많이 사용하는 작업의 성능을 높이는 데 도움이 될 수 있는 데이터베이스 페이지 압축을 사용하는 것이 좋습니다. 그러나 데이터 압축은 데이터베이스 서버에서 CPU 소비를 늘릴 수 있습니다.

  • Azure 내외로 전송하는 경우 모든 데이터 파일을 압축하는 것이 좋습니다.

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

  • autogrow는 예기치 않게 증가했을 경우를 대비한 대책입니다. 자동 증가를 사용하면 매일 데이터 및 로그 크기를 관리하지 않아도 됩니다. 자동 증가를 사용하면 크기 전환을 통해 파일이 사전에 증가합니다.

  • 성능에 좋지 않은 영향을 미치는 불필요한 오버헤드를 피하기 위해 autoshrink를 사용하지 않습니다.

  • SQL Server 2012를 실행하고 있으면 서비스 팩 1 누적 업데이트 10을 설치하세요. 이 업데이트에는 SQL Server 2012에서 임시 테이블 구문을 선택해서 실행했을 때 I/O 성능이 크게 떨어지지 않도록 해주는 수정 사항이 포함되어 있습니다. 자세한 정보는 이 기술 자료 문서를 참조하세요.

  • msdbtempdb 같은 시스템 데이터베이스, 백업, SQL Server의 기본 데이터 및 로그 디렉터리를 성능 향상을 위해 캐시가 설정되지 않은 데이터 디스크로 이동하세요. 그리고 다음 작업을 수행하세요.

    • XEvent를 조정하고 파일 경로를 추적하세요.

    • SQL 오류 로그 경로를 조정하세요.

    • 기본 백업 경로를 조정하세요.

    • 기본 데이터베이스 위치를 조정하세요.

  • 잠긴 페이지를 설정해 IO 및 페이지 작업을 줄이세요.

고급 구성 기술을 사용하면 배포를 통해 추가적인 성능 향상을 기대할 수 있습니다. 다음 목록에서 강조 표시되어 있는 SQL Server 기능을 사용하면 성능을 향상시킬 수 있습니다.

참고 항목

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2014 Microsoft