2012-02-10 6 views
7

Может ли кто-нибудь предложить мне какие-либо сведения о том, почему мое облачное развертывание будет медленнее, чем на локальном компьютере в терминах «лошадиных сил»?Azure вычислительная мощность: Extra Large VM slow

У меня есть приложение с интенсивным вычислением, которое использует роль рабочего для выполнения миллионов вычислений (параллельно).

В настоящее время в Azure я тестирую с помощью сверхбольшей (8 ячеек, 16 ГБ) виртуальной машины для обработки. В среднем он занимает 45 минут на итерацию, тогда как один и тот же код, работающий на 4-ядерном, 8-Гбайт на месте машины, занимал всего 15 минут.

Azure logs показывает, что общее использование процессора составляет 99%, но у меня 12 ГБ свободного места, поэтому я обязательно попробую загрузить больше данных в память для каждой итерации.

Являются ли 8 ядер индивидуально очень низкими спецификациями? Является ли локальное хранилище действительно локальным? То есть локальное хранилище действительно находится на другом физическом устройстве, и поэтому выборка данных из файла и запись результатов на диск происходит медленно?

ответ

1

пара вопросы здесь, я постараюсь ответить на некоторые ...

Локального хранения локально - значит, на тот же диск, в запретной зоне. Используете ли вы локальные API хранения для доступа к нему? Локальное хранилище также доступно - если ваше приложение перераспределено, все данные в локальном хранилище теряются. Если вы используете Azure Drive, то да, я бы ожидал некоторых задержек, так как это записывает в хранилище blob, но вы этого не упомянули.

Спецификация процессора определена на веб-сайте Azure.

Трудно решить вашу актуальную проблему медленности, хотя и не получая лучшего представления об архитектуре и обработке вашей фоновой работы. Но, как правило, я был бы удивлен, увидев результаты, которые вы указываете. (Является ли ваш на предварительной машине виртуальной машиной или выделенным оборудованием?)

+0

Да, я использую локальное хранилище через API. Волатильность для меня не проблема. Я копирую набор входных данных из памяти blob, записываю промежуточные результаты в локальное хранилище, а затем окончательный вывод обратно в blob. Я думаю, что мне придется добавить дополнительную информацию о трассировке, чтобы выяснить, могу ли я вычислить или привязать IO. – user1200984

0

Я нахожу то же самое, когда бегущий аналитически-тяжелый код (т. Е. Малое использование диска, не слишком много ОЗУ). Я думаю, проблема в том, что они выбирают процессоры, основанные на цене и количестве ядер, а не на мощности. Теория заключается в том, что вы должны распараллеливать свой код, чтобы воспользоваться всеми этими ядрами, но иногда это сложно или дорого (во время кодирования). Рассмотрите возможность голосования за more CPU power, но иногда это сложно или дорого.

+0

Я подозреваю, что вы правы (много мощных ядер). Мой код очень параллелен. В этом отношении я нашел расширения PLINQ большим стимулом. В конечном счете, хотя это только позволяет мне масштабироваться через процессоры, тогда как похоже, мне нужно масштабировать несколько ролей сотрудников. :-( – user1200984

2

У меня такая же проблема. Мое веб-приложение с базой данных (на sql azure) также очень медленное по сравнению с моим компьютером на локальном компьютере.

Сведения о локальном сервере: - сервер начального уровня dell < $ 1000, с 4 ядрами и 8 ГБ памяти. - Сервер работает как виртуальные машины - даже сервер БД находится на том же сервере (обмен же аппаратное обеспечение с веб-сервером)

Azure: - WebRole на дополнительной большой сервер с 8 ядрами. - SQL Azure (я предполагаю, что на другом физическом сервере)

Мое предположение заключалось в том, что оно улучшит производительность при развертывании на лазури! :( Угадайте, что она в 4 раза медленнее (проверяется с помощью кода профайлер, что раз каждый запрос)

Я разочарован, я думаю, что это действительно медленные 8 ядер.

Я побежал тест на моем старом компьютер (Intel Pentium). На нем установлены те же локальные виртуальные машины (хост VMWare).Это даже быстрее, чем лазурь.

4

Скотт Гатри (главный в команде Windows Azure) мне
Привет Иван,

У нас есть другие конфигурации VM HW, а также - в том числе мульти-прок и высокие параметры памяти. В будущем вы увидите еще больше вариантов.

Надеется, что это помогает,

Скотт


Моего тест: (100% время процессора)

Lucas-Лехмер математических расчетов. Многопоточная версия использует реализации Parallel.For

Домашний компьютер Core i7 3770K (4 ядра х 3.5GHz) (Win 8)

SINGLETHREADED (17 начальных чисел): (. 11,6 сек) 11676 мс

многопоточном (17 первичные числа): 2816 мс (2,8 сек.)

Лазурное Большой VM (4 ядра х 1,6 ГГц) (Win S 2008)

SINGLETHREADED (17 начальных чисел): 37275 мс

многопоточном 17 начальных чисел): 10118 мс

Azure Extra Large VM (8 ядер х 1,6 ГГц) (Win S 2008)

SINGLETHREADED (17 первичные числа): 36232 мс

многопоточном (17 первичные числа): 6498 м

работы компьютера - AMD FX 6100 (6 ядер х 3,3 ГГц) (Win 7 мас UPD)

SINGLETHREADED (17 начальных чисел): 48758 мс

многопоточных (17 начальных чисел): 16486 мс

Проголосовать за эту идею на первой странице http://www.mygreatwindowsazureidea.com/forums/34192-windows-azure-feature-voting/suggestions/3622286-upgrade-windows-azure-processor-from-1-6-ghz-to-mi

+0

Ваш домашний компьютер бьет все! Можем ли мы арендовать ваш домашний компьютер? –