Медленная производительность диска на Azure Виртуальная машина

Хорошо, поэтому в первую очередь, позвольте мне говорить, что я не операционный человек, а разработчик. Таким образом, я вхожу в небольшое количество неизвестной земли здесь, поэтому терпите меня.

Я хотел бы использовать Azure Виртуальная машина для извлечения XML-файла на 50 ГБ из zip-файла на 1,9 ГБ. Таким образом, я тестировал, какой размер экземпляра на Azure я должен использовать для получения хорошей производительности, не платя за больше, чем, мне нужно.

Однако производительность диска Azure VM's не была удивительна, и я хотел бы знать, являюсь ли это я, кто делает что-то не так, или если мои результаты - то, что может ожидаться.

В первую очередь, с чем я тестировал? У меня есть пользовательское консольное приложение.NET, которое действительно только берет zip-файл в качестве аргумента и сразу начинает извлекать zip-файл к тому же каталогу, в котором находится zip-файл. В то время как извлечение продолжается, приложение вычисляет, сколько мегабайтов приложение записало в конечный файл в секунду, и производит его.

На моей локальной машине разработки я получаю довольно хорошую производительность с этим приложением, записанных 160-210 МБ/с. Таким образом, целый процесс извлечения занимает приблизительно 8 минут. Спецификациями моей локальной машины является Intel Core i7 950, 3 ГГц, 4 ядра (8 логических), 12 ГБ RAM, ряд Samsung SSD 830 250 ГБ.

Хорошо, таким образом, я начал тестировать различные размеры экземпляра и здесь являюсь своими результатами.

  • На экземпляре A4 с Центром обработки данных Windows Server 2012 R2 (8 ядер, 14 ГБ RAM) с чередуемым RAID 4 виртуальных дисков с помощью той же учетной записи устройства хранения данных, без кэширования хоста, я получил устойчивых 30-35 МБ/с, что означает, что целое извлечение заняло 24 минуты и 48 секунд. Я также пытался включить кэширование хоста, но это действительно не имело никакого значения.
  • На экземпляре D4 с Центром обработки данных Windows Server 2012 (8 ядер, 28 ГБ RAM, локального диска SSD на 500 ГБ) я получал действительно хорошую производительность (150 + МБ/с) в течение первых минут и затем переменной производительности с пиками на уровне 200 МБ/с и долинами на уровне 9 МБ/с. Средняя производительность была между 70 и 100 МБ/с. Извлечение заняло 9 минут и 40 секунд.
  • На экземпляре D3 с Центром обработки данных Windows Server 2012 (4 ядра, 14 ГБ RAM, локального диска SSD на 250 ГБ) я получил действительно хорошую производительность (150 + МБ/с) первая минута, но затем производительность отказалась стабилизировать 20-40 МБ/с, заставив процесс извлечения занять 21 минуту и 49 секунд.

На D2 и экземпляре D1, производительность диска хуже, чем на D3.

И это действительно удивляет меня. Как локальный диск SSD может работать так плохо, как он делает на D1, D2 и экземплярах D3? И кто-либо знает, почему производительность диска отличается так между D1 к D4? Действительно ли это - проблема памяти? Когда я смотрю на диспетчер задач, в то время как извлечение продолжение OS, использование памяти взрывается. Я подозреваю, что это - потому что Windows кэширует записанные данные, но когда это исчерпывает память, это должно сбросить данные к диску. Когда это происходит, снижения производительности диска. Но этого не происходит на моей локальной машине, итак, почему такое агрессивное кэшируется необходимый на них VM's?

Я знаю, что существуют различия между моей локальной машиной и виртуальной машиной, размещенной в Azure, но производительность диска, которую я испытываю действительно, чтобы ожидаться?

(Я первоначально отправил свой вопрос на Stackoverflow, поскольку я подозревал, что это было мое приложение, которое было причиной. Но я больше не так уверен),

8
задан 23 May 2017 в 15:41
2 ответа

Здесь немного поздно, но для «подключенных» SSD в Azure количество операций ввода-вывода в секунду снижено в зависимости от размера машины. Об этом нигде не упоминалось в ценах, но я поднял этот вопрос как тикет в службу технической поддержки, когда они направили меня на сообщение в блоге ниже.

См. Эту ссылку: http://azure.microsoft.com/blog/2014/10/06/d-series-performance-expectations/

6
ответ дан 2 December 2019 в 22:58

Возможно, это не связано с памятью. «Физические» диски в Azure используют так называемое хранилище BLOB-объектов, и по этой причине производительность не такая, как на локальном компьютере, даже с аналогичным оборудованием. Вы можете найти дополнительную информацию по этой ссылке . Это, по-видимому, обычная проблема для сообщества SQL Server, которое сильно зависит от производительности диска. Я процитирую статью, которую я нашел об этом

Техническое руководство по производительности SQL Server в виртуальных машинах Azure. упоминает (на страницах 15 и 26), что на виртуальных машинах Azure дисковые пространства могут быть используется для повышения производительности хранилища для рабочих нагрузок SQL Server

Дисковые пространства - это встроенная функция Windows Server 2012, которая позволяет использовать несколько физических дисков для создания одного виртуального диска, следовательно, в качестве обхода ограничений ввода-вывода, связанных с Сам диск ВМ. Еще раз процитируем:

С более крупными виртуальными машинами, которые поддерживают много (до 16) физических дисков, очень возможно значительное увеличение производительности хранилища. Это может включить Azure в качестве жизнеспособной платформы для многих рабочих нагрузок SQL, которые слишком ограничен производительностью ввода-вывода одного диска Azure в противном случае.

Эта статья покажет вам шаги по созданию дискового пространства.

Вы должны сначала попробовать это. Возможно, вы даже можете использовать меньший экземпляр, поскольку служба хранения является отдельной службой от самого экземпляра.

4
ответ дан 2 December 2019 в 22:58

Теги

Похожие вопросы