Является ли экземпляр рабочей роли Windows Azure целой виртуальной машиной?

Когда я запускаю экземпляр рабочей роли в Azure, это полная виртуальная машина, работающая на общем хосте (например, EC2)? Или он работает в общей системе (например, Heroku)?

Например, что произойдет, если мое приложение начнет запрашивать 100 ГБ памяти? Будет ли он автоматически убит за нарушение ограничений (как Google App Engine), или он просто исчерпает виртуальную машину, чтобы фабрика Azure перезапустила его?

Две роли когда-либо выполнялись в одной системе?

Ответы на вопрос(2)

Решение Вопроса

и выделяемые ресурсы зависят от размера виртуальной машины, которую вы выбираете, от 1,75 ГБ (маленькая) до 14 ГБ (XL) с 1-8 ядрами. Есть также Extra Small экземпляр с 768 МБ оперативной памяти и общим ядром. Полный размер виртуальной машины:Во.

С Windows Azure ваша виртуальная машина размещена на физическом сервере, и ответственность за поиск таких серверов лежит на том, чтобы правильно распределить все экземпляры веб-ролей или рабочих ролей. Если у вас есть несколько экземпляров, это означает распределение этих виртуальных машин по Неисправные домены.

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

Что касается двух ролей, работающих в одной системе: у каждой роли есть экземпляры, а с несколькими экземплярами, как я уже упоминал выше, ваши экземпляры делятся на области сбоев. Например, если у вас было 4 экземпляра и 2 домена с ошибками, возможно, у вас может быть два экземпляра в одной стойке (или, возможно, на одном сервере).

 David Makogon07 июн. 2012 г., 07:12
Я имею в виду, что это не то, о чем вы обычно беспокоитесь в Windows Azure. Это виртуальные машины Windows 2008 Server с некоторым кодом для подстановки ролей, позволяющим запустить ваш код. Здесь ожидаются те же условия нехватки памяти, что и в локальной виртуальной машине или машине.
 Andres Riofrio07 июн. 2012 г., 06:51
Re: последний абзац. Но эти два экземпляра все еще будут в отдельных виртуальных машинах, верно?
 David Makogon07 июн. 2012 г., 06:56
Экземпляры никогда не объединяются в одни и те же виртуальные машины. А что касается перестановки дисков и нехватки памяти: все виртуализировано. Хотя я не могу дать однозначного ответа, вы можете себе представить, что у каждого физического блока достаточно ресурсов для поддержки полноценной 8-ядерной, 14 ГБ (XL) виртуальной машины. Это также означает, что физической емкости достаточно для поддержки нескольких небольших виртуальных машин.
 Andres Riofrio07 июн. 2012 г., 06:53
Re: «с вашей виртуальной машиной ...» Начнет ли Azure подкачка на диск, если я запрошу слишком много памяти до порогового значения, или я сразу же получу ошибку нехватки памяти?
 Andres Riofrio07 июн. 2012 г., 07:20
Я вижу. Возможно, более конкретный вопрос заключается в следующем: есть ли у экземпляров Windows Azure возможность подкачки на диск в стиле Linux по умолчанию? Или виртуальная память такая же, как физическая (виртуализированная) память?

чтобы проверить это. Я использую «маленький» экземпляр, который имеет примерно 1,75 гигабайта памяти. Мой код используетArrayList для хранения ссылок на большие массивы, чтобы эти массивы не собирались мусором. Каждый массив равен одному миллиардbytes и как только он выделен, я запускаю цикл, который устанавливает каждый элемент на ноль, а затем еще один цикл, чтобы проверить, что каждый элемент равен нулю, чтобы убедиться, что память действительно выделена из операционной системы (не уверен, имеет ли это значение в C #, но это действительно имеет значение в C ++). Как только массив создан, записан и прочитан, он добавляется вArrayList.

Так что мой код успешно выделил пять таких массивов, а попытка выделить шестой привела кSystem.OutOfMemoryException. Поскольку 5 миллиардов байтов плюс накладные расходы, безусловно, больше, чем 1,75 гигабайта физической памяти, выделенной для машины, я считаю, что это доказывает, что файл подкачки включен на виртуальной машине и поведение такое же, как на обычном Windows Server 2008 с ограничениями, вызванными машина, на которой он работает.

Ваш ответ на вопрос