Azure Virtual Machine에서 디스크 성능 저하


9

자, 우선, 저는 운영 담당자가 아니라 개발자라고 말할 수 있습니다. 그래서 나는 여기에 알려지지 않은 약간의 땅에 들어갈 것입니다.

1.9GB zip 파일에서 50GB XML 파일을 추출하기 위해 Azure Virtual Machine을 사용하고 싶습니다. 따라서 Azure에서 어떤 인스턴스 크기를 테스트하여 필요한 것보다 많은 비용을 지불하지 않으면 서 우수한 성능을 얻는 데 사용해야합니다.

그러나 Azure VM의 디스크 성능은 놀랍지 않았습니다. 누군가가 잘못하고 있는지 또는 내 결과가 기대할 수 있는지 여부를 알고 싶습니다.

우선, 내가 무엇을 테스트하고 있습니까? 압축 파일을 인수로 사용하고 압축 파일이있는 동일한 디렉토리에 압축 파일 추출을 즉시 시작하는 사용자 지정 .NET 콘솔 응용 프로그램이 있습니다. 추출이 진행되는 동안 응용 프로그램은 몇 메가 바이트를 계산합니다 애플리케이션이 초당 대상 파일에 기록하여 출력합니다.

내 로컬 개발 시스템에서 160-210 MB / s로 작성된이 응용 프로그램으로 꽤 좋은 성능을 얻습니다. 따라서 전체 추출 과정은 약 8 분이 걸립니다. 내 로컬 컴퓨터의 사양은 Intel Core i7 950, 3GHz, 4 코어 (8 논리), 12GB RAM, Samsung SSD 830 시리즈 250GB입니다.

자, 다른 인스턴스 크기를 테스트하기 시작했으며 결과는 다음과 같습니다.

  • 호스트 캐싱없이 동일한 저장소 계정을 사용하여 4 개의 가상 디스크로 구성된 스트라이프 RAID가있는 Windows Server 2012 Datacenter R2 (8 코어, 14GB RAM)가있는 A4 인스턴스에서 30-35MB / s의 안정적인 속도를 유지했습니다. 추출에는 24 분 48 초가 걸렸습니다. 또한 호스트 캐싱을 사용하려고 시도했지만 실제로 아무런 차이가 없었습니다.
  • Windows Server 2012 Datacenter (8 코어, 28GB RAM, 500GB 로컬 SSD 디스크)가 포함 된 D4 인스턴스에서 처음 1 분 동안 실제로 우수한 성능 (150 + MB / s)을 얻은 다음 200MB / 9MB / s의 계곡 평균 성능은 70 ~ 100MB / s입니다. 추출에는 9 분 40 초가 걸렸습니다.
  • Windows Server 2012 Datacenter (4 코어, 14GB RAM, 250GB 로컬 SSD 디스크)가 포함 된 D3 인스턴스에서 처음 1 분 동안 실제로 우수한 성능 (150 + MB / s)을 얻었지만 성능이 20-40MB로 감소했습니다. / s, 추출 프로세스에서 21 분 49 초가 소요됩니다.

D2 및 D1 인스턴스에서 디스크 성능은 D3보다 나쁩니다.

그리고 이것은 정말로 나를 놀라게합니다. 로컬 SSD 디스크가 D1, D2 및 D3 인스턴스에서와 같이 어떻게 그렇게 나빠질 수 있습니까? 그리고 디스크 성능이 왜 D1과 D4 사이에 크게 다른지 아는 사람이 있습니까? 메모리 문제입니까? 추출 작업이 진행되는 동안 작업 관리자를 보면 메모리 사용량이 폭발적으로 증가하고 있습니다. Windows가 기록 된 데이터를 캐시하고 있기 때문에 메모리가 부족한 경우 데이터를 디스크로 플러시해야합니다. 이 경우 디스크 성능이 저하됩니다. 그러나 이것은 내 로컬 컴퓨터에서 발생하지 않으므로 이러한 VM에서 이러한 공격적인 캐싱이 필요한 이유는 무엇입니까?

로컬 컴퓨터와 Azure에서 호스팅되는 가상 컴퓨터간에 차이가 있다는 것을 알고 있지만 실제로 디스크 성능이 예상됩니까?

(원래 응용 프로그램이 의심되는 원인 으로 Stackoverflow내 질문을 게시 했지만 더 이상 확실하지 않습니다)

답변:


7

파티에 늦었지만 Azure의 "부착 된"SSD의 가치에 따라 머신 크기에 따라 IOP가 제한됩니다. 가격에 대해서는 언급되지 않았지만 아래 블로그 게시물을 참조했을 때 기술 지원 티켓 으로이 문제를 제기했습니다.

이 링크를 참조하십시오 : http://azure.microsoft.com/blog/2014/10/06/d-series-performance-expectations/


좋은 정보, 고마워 Richard! 나는 그것이 조절과 관련이 있다고 생각했지만, 그 당시에는 그것에 관한 특정 정보를 찾을 수 없었습니다. 그 블로그 게시물은 내 질문에 대답합니다.
René

azure limit disk io .. 도대체 .. 나는 Google 클라우드로 전환합니다.이를 제한하지 않으며 가격이 훨씬 저렴합니다.
tyan

4

메모리와 관련이 없을 수도 있습니다. Azure의 "물리적"디스크는 Blob Storage라는 기능을 사용하므로 유사한 하드웨어를 사용하더라도 로컬 컴퓨터와 성능이 동일하지 않기 때문입니다. 이 링크 에 대한 자세한 정보를 찾을 수 있습니다 . 이는 디스크 성능에 크게 의존하는 SQL Server 커뮤니티에서 일반적인 문제인 것 같습니다. 내가 찾은 기사를 인용하겠습니다

Azure VM의 SQL Server에 대한 성능 지침 백서에서는 Azure VM에서 저장소 공간을 사용하여 SQL Server 작업 부하에 대한 저장소 성능을 향상시킬 수 있다고 언급합니다 (15 페이지 및 26 페이지).

저장소 공간은 Windows Server 2012의 기본 제공 기능으로 여러 개의 물리적 디스크를 사용하여 하나의 가상 디스크를 만들 수 있으므로 VM 디스크 자체의 I / O 제한에 대한 해결 방법입니다. 다시 인용 :

많은 (최대 16 개) 물리 디스크를 지원하는 더 큰 VM을 사용하면 스토리지 성능이 크게 향상 될 수 있습니다. 이를 통해 Azure는 단일 Azure 디스크의 I / O 성능에 의해 너무 제한되는 많은 SQL 워크로드를위한 실행 가능한 플랫폼으로 사용할 수 있습니다.

기사에서는 저장 공간을 만드는 단계를 보여줍니다.

먼저 시도해야합니다. 스토리지 서비스는 인스턴스 자체와 별도의 서비스이므로 더 작은 인스턴스를 사용할 수도 있습니다.


Azure의 표준 디스크는 실제로 Blob Storage를 사용하는 것이 맞지만 SSD 디스크의 경우에는 그렇지 않습니다. Microsoft에 제공된 정보에 따르면 로컬 물리적 SSD 디스크입니다. 이 경우 D 인스턴스 크기간에 성능이 크게 다른 것이 이상하다고 생각합니다. 저장 공간에 관하여 : 나는 이것을 탐구하고 몇 가지 테스트를했지만 불행히도 실제로 눈에 띄는 성능 향상을주지 못했습니다. 결국, 나는이 작업을 위해 더 큰 인스턴스 크기를 사용해야한다는 것을 받아 들여야한다는 결론에 도달했습니다.
르네

1
@ René 새로운 Azure Storage Premium을 테스트 할 기회가 있었습니까? 이 오래된 주제에 부딪 히게되어 죄송하지만이 새로운 스토리지가 주변 환경에서 어떻게 작동하는지 궁금합니다.
Bruno Faria

답장이 늦어서 죄송합니다. Azure Storage Premium에 대한 유용한 팁 아직 해당 지역에서 사용할 수 없으므로 시도하지 않았습니다. 하지만 계속 주시하겠습니다. 다시 감사합니다!
René
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.