Azure SQL Server가 왜 이렇게 느린가요?


10

우리는 현재 매우 약한 VM을 가지고 있으며 더 나은 사양으로 Azure VM으로 전환 할 것을 제안하고 있습니다. 문제는 Azure VM이 사양이 더 높더라도 원래 VM보다 훨씬 느리다는 것입니다.

원래 서버는 2GB의 메모리를 가진 2 코어 VM이며 웹 서버이기도합니다. Microsoft SQL Server Web Edition 2008 R2를 실행 중이며이 서버는 다른 용도로 사용되기 때문에 SQL Server의 최대 서버 메모리를 512MB 로 제한해야했습니다 .

새로운 서버는 데이터베이스 서버에 불과한 7GB의 메모리를 갖춘 4 코어 VM입니다. Microsoft SQL Server Standard Edition 2008 R2를 실행 중이며 SQL Server에서 사용할 수있는 메모리 양은 제한되지 않았습니다.

이것은 미러 환경에서 설정된 두 서버 중 하나이지만 테스트를 실행하는 데이터베이스는 미러링되지 않습니다. 이 서버의 다른 데이터베이스는 현재 많은 트래픽을 얻지 못합니다 (실제로 활동 모니터는이 테스트를 실행하는 동안 다른 DB에서 활동을 표시하지 않습니다).

Azure VM의 문제는 하드 드라이브가 네트워크 리소스이므로 속도 저하의 원인이 될 수 있지만 IO 통계에 0 개의 물리적 읽기가 있어도 여전히 느리다는 것을 알고 있습니다.

디스크 스트라이핑 (드라이브 당 2 개의 디스크)과 로그 및 데이터 파일을 별도의 드라이브에 넣는 등 Azure VM 에서이 페이지 의 튜닝 조언을 따랐 습니다.

내가하지 않은 유일한 것은 페이지 압축 활성화, 데이터베이스의 자동 증가 제한 및 SQL 서버 오류 로그 및 추적 파일 디렉토리를 데이터 디스크로 이동하는 것입니다. 이전 서버에서도 그렇게하지 않았습니다.

이전 서버는이 조정을 수행하지 않았으며 로그 및 데이터 파일은 스트라이프되지 않은 동일한 드라이브에 있습니다.

현재 서버의 데이터베이스는 65GB (45 데이터 및 20 로그)로 새 서버로 전송하기에는 너무 커서 작은 DB (6 데이터 및 13.5 로그)에서 테스트하고 있습니다.

이전 서버 CPU time = 1311 ms, elapsed time = 1057 ms.와 새 서버 CPU time = 1281 ms, elapsed time = 2525 ms. 의 결과는 한 번만 실행되지만 결과는 내가 일반적으로 보는 것을 나타냅니다.

새 서버는 CPU 시간보다 지속적으로 경과 시간이 상당히 긴 것 같습니다. 그게 문제가되며 문제의 원인을 추적하기 위해 할 수있는 일이 있습니까?

이 서버가 이전 서버보다 속도가 빠르다고 생각 될 때 왜이 서버가 느리게 진행되는지 알아 내기 위해 수행 할 수있는 다른 단계는 무엇입니까?


1
맥도프 1? 실행 계획을 비교하고 대기 전후 통계를 취한 후 차단을 확인 했습니까?
Aaron Bertrand

1
데이터 드라이브는 몇 개입니까? 표준 페이지 블롭 스토리지를 사용하면 각 드라이브는 기본 계층에서 300 IOPS 미만 또는 표준에서 500 IOPS로 제한되며 이는 온 프레미스 회전 디스크보다 훨씬 적습니다. IOPS와 대역폭을 최대화하려면 가능한 한 많은 드라이브 (vhd)를 가져야합니다. Windows 스토리지 공간을 사용하여 각 드라이브에 별도의 데이터 파일을 작성할 필요가 없습니다.
Dan Guzman

새로운 서버에는 2 개의 드라이브에 4 개의 VHD가 스트라이프되어 있으므로 1000 IOPS의 로그와 1000 IOPS의 데이터가 있습니다.
Steve Kaye

표준 페이지 블로그 스토리지 VHD는 제한으로 인해 약 30MB / 초의 대역폭 만 제공하므로 총 60MB / 초에 불과합니다. 최대 420MB / 초에 14 개의 데이터 VHD를 생성하고 모두 스트라이핑을 고려하십시오.
Dan Guzman

A3 인스턴스이므로 8 개의 디스크 만 가질 수 있으므로 가격의 두 배인 A4로 업그레이드해야합니다. 위의 테스트는 모두 IO 통계에 0 개의 물리적 읽기가 있었기 때문에 이것이 드라이브 문제라고 생각하지 않습니다.
Steve Kaye

답변:


2

가치있는 것을 위해 Azure의 VM을 유형 A에서 유형 D로 변경 한 다음 다른 디스크를 연결하고 TEMPDB를 해당 디스크로 이동했습니다. 따라서 최종 VM은 이제 7GB RAM과 3 개의 데이터 디스크 (하나는 MDF 파일 용, 다른 하나는 LDF 파일 및 새로운 TEMPDB 디스크)가있는 D2 표준입니다.

나는 당신이 언급 한 것들을 A3와 이해하고 가상 머신을 업그레이드하려고 포기했습니다. 나는 심지어 A2에서 A3로 갔다.

언급 한 문서에서 Microsoft는 D3 for Enterprise Edition 또는 D2 for Web 또는 Standard Edition 및 Premium Storage 사용을 문서 시작 부분의 검사 목록에서 특히 권장합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.