Как я могу эмулировать больше виртуальных процессоров, чем доступно физически?
В VMWare вы можете использовать несколько процессоров, но только столько, сколько присутствует на хосте. Есть ли способ использовать больше процессоров, чем доступно физически?
Было бы:
- тестовое программное обеспечение, предназначенное для работы на дорогих 16-позиционных коробках на обычных 2-сторонних коробках.
- Используйте изображение, разработанное для 2-way на 1-way хосте
- тестировать программное обеспечение на не-power-of-2- way (думаю, 3) (хотя это может в конечном итоге быть сделано на 4-way box)
В VMWare вы можете использовать несколько процессоров, но только столько, сколько присутствует на хосте. Есть ли способ использовать больше процессоров, чем доступно физически?
Было бы:
- тестовое программное обеспечение, предназначенное для работы на дорогих 16-позиционных коробках на обычных 2-сторонних коробках.
- Используйте изображение, разработанное для 2-way на 1-way хосте
- тестировать программное обеспечение на не-power-of-2- way (думаю, 3) (хотя это может в конечном итоге быть сделано на 4-way box)
Обновить:
В частности, я хочу иметь возможность запускать 16-стороннюю ОС на двухпроцессорном оборудовании, а не базовую избыточную подписку (например, 16-двунаправленную на четырехпроцессорном оборудовании), которая эффективно обрабатывается практически всеми доступными в настоящее время программами виртуализации.
Я также не хочу вкладывать средства в очень конкретное решение, если мне это не нужно, поскольку идея состоит в том, чтобы ограничить необходимые инвестиции.
И я не могу просто увеличить количество потоков, как это было умно предложено с тех пор:
- В одном приложении я хотел бы иметь возможность проверить саморегуляцию номеров процессов.
- Я также хочу увидеть влияние нескольких крупных SMP (16+ way) хостов на большое количество маленьких хостов (1 или 2 way).
Обновление (бис):
Я наконец узнал, что QEMU делает именно это.
5 ответов
На самом деле QEMU предлагает -smp X
опция запуска, которая делает именно то, что мне нужно.
Даже если вы найдете эмулятор, который будет делать это, реальность такова, что вы не сможете полностью протестировать в этом сценарии - условия гонки, блокировки и тому подобное не могут быть полностью протестированы для работы в параллельной среде, если вы все еще работают все по существу последовательно.
-Адам
VMWare позволяет вам переподписывать процессоры, то есть, если у вас есть два четырехъядерных Xeon (т.е. всего 8 ядер), вы можете иметь 6 x двух виртуальных виртуальных машин с vCPU. Очевидно, что если все 6 виртуальных машин "побелят" при 100% CPU, вы столкнетесь с проблемами производительности, но, надеюсь, это вряд ли произойдет. То же самое касается памяти, кстати. Надеюсь, что это ответ на ваш вопрос.
Я думаю, вам нужна серьезная симуляция, например, Simics или что-то подобное.
Когда дело доходит до простого тестирования, просто использование большего количества потоков, чем ядер, даст хотя бы некоторые полезные данные, верно?
Похоже, было бы нелепо требовать от процессора подражать большему количеству ядер - по крайней мере, любым значимым способом. Но я могу ошибаться ^^
Нет, вы не можете запустить 16-стороннее изображение на 2-сторонней коробке. Если вы не против потратить немного денег, купите несколько подержанных IBM 440 от Ebay. Вы можете объединить их в цепочку, чтобы построить один 16-позиционный бокс, и они до смешного дешевы, например, менее 200 долларов. Они весят тонну, и они громкие, и они используют много энергии, и они не особенно быстрые (все одноядерные), но они достигнут того, что вам нужно. Плюс они запускают VMware ESX - я использовал их начиная с версии 2.5.
Кабель с гирляндой обычно не входит в комплект, поэтому вам нужно найти источник для него. И вы должны убедиться, что все 440 имеют одинаковую скорость процессора.
Если вы находитесь в районе Южной Флориды, дайте мне знать, и я могу связать вас с магазином, который может продать их.