우리는 현재 매우 약한 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 시간보다 지속적으로 경과 시간이 상당히 긴 것 같습니다. 그게 문제가되며 문제의 원인을 추적하기 위해 할 수있는 일이 있습니까?
이 서버가 이전 서버보다 속도가 빠르다고 생각 될 때 왜이 서버가 느리게 진행되는지 알아 내기 위해 수행 할 수있는 다른 단계는 무엇입니까?