Многопоточность в среде виртуальных машин VMWare - PullRequest
2 голосов
/ 01 марта 2012

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

Архитектура потоков для приложения, которое было разработано дляСреда VM отличается от приложения, разработанного для среды, отличной от VM?Моя основная проблема заключается в том, что для каждого потока, встроенного в приложение, фактическое количество потоков, которое может быть запущено на машину, является функцией количества экземпляров vm, запущенных на машине, и может фактически привести к снижению производительности.

Заранее спасибо.

Редактировать: Под vm выше я подразумеваю виртуальную машину, предоставляемую VMWare.

Ответы [ 2 ]

4 голосов
/ 01 марта 2012

Я думаю, что ваши опасения по поводу "снижения производительности" оправданы.Если вы работаете на одной машине с несколькими виртуальными машинами и добавляете к ней несколько потоков, вы, скорее всего, будете увеличивать только переключение контекста, а не работать с виртуальной машиной.на рабочих местах вы работаете, конечно.Если они связаны с IO, то добавление потоков может улучшить распараллеливание.Однако, если они связаны с процессором / вычислениями, вы, скорее всего, не получите выигрыш и, скорее всего, увидите снижение производительности.

1 голос
/ 01 марта 2012

Отличается ли архитектура потоков для приложения, которое было разработано для среды vm, и для приложения, разработанного для среды, отличной от vm?

Не IME, но тогда я не склонен писать приложения, интенсивно использующие процессор - я чаще всего использую потоки для извлечения материала из GUI и упрощения дизайна для нескольких пользователей / клиентов. Я просто проектирую приложения так, как будто я работаю на родной ОС.

Я не знаю, как отображаются потоки. У меня сейчас работает XP VM. Диспетчер задач XP показывает 518 потоков, хост (Vista 64), диспетчер задач показывает только 11 потоков для VMware Workstation VMX, хотя есть еще 22 потока для NAT Sevice, VMnet DHCP, Tray Process и т.д. «процессоры», назначенные виртуальной машине, чтобы дать многопоточным ошибкам больше шансов обнаружиться.

...