27

Кто-нибудь знает способ ограничения скорости процессора в виртуальной машине? Или если есть даже программное обеспечение для виртуализации, которое позволяет вам сделать это?

Я пытаюсь найти минимальные требования к системе, учитывая конкретный образ ОС, который у меня есть. Я вижу способы ограничения ОЗУ, размера жесткого диска и количества ядер, но мне нужно замедлить ЦП до 800 МГц, чтобы реально имитировать конфигурацию системы. Кроме того, компьютер, на котором запущена виртуальная машина, является машиной Windows 7.

8 ответов8

19

Передо мной стояла та же проблема, и я установил Oracle VirtualBox на Windows 7 (в качестве хоста) и Ubuntu (в качестве гостя). Я использовал автономный ноутбук HP EliteBook 8540W с Intl Core i7 с тактовой частотой 1,87 ГГц и 8 ГБ ОЗУ.

Предполагая, что ваша установка работает правильно, на вашей гостевой машине (например, в моем случае, Ubuntu) выберите «Настройки ...» из "Машины" в главном меню; выберите "Система" и нажмите на вкладку "Процессор". Вы можете отрегулировать тактовую частоту (с надписью "Выполнение Cap"), сдвинув индикатор на панели до 1 процента.

Я предположил, что хост-ОС (в моем случае Windows 7) не потребляла никаких тактовых циклов (я подтвердил это, проверив "Диспетчер задач", и обнаружил, что загрузка ЦПУ на главном компьютере .ie windows 7 в моем случае). Поэтому я считаю, что 100% "ограничение исполнения" равно значению хост-машины (например, 1,87 ГГц). Я думаю, что, взяв процентное соотношение между тактовой частотой хост-машины и 800 МГц, вы сможете определить процентное значение, соответствующее 800 МГц.

Надеюсь, это поможет.

Удачи.

9

В VMWare ESX и ESXi вы можете создать пул ресурсов и ограничить ресурсы ЦП для этого пула. Это позволит вам ограничить скорость процессора любых систем, созданных в этом пуле ресурсов.

5

Скомпилировано и использовано: cpulimit, который работал как шарм, чтобы замедлить ВМ.

2

--cpuexecutioncap <1-100>: этот параметр определяет, сколько процессорного времени может использовать виртуальный процессор. Значение 50 подразумевает, что один виртуальный ЦП может использовать до 50% ЦП одного хоста.

2

Хотя я не эксперт по всем различным технологиям виртуализации, я думаю, что вряд ли вы найдете такую настройку. Тем не менее, вы найдете настройки (по крайней мере, в MS hyper-V), которые позволяют ограничить виртуальную машину до процента от общих действий хост-машины. Поэтому, если у вас 8-ядерный хост, работающий на частоте 2 ГГц, вы можете попробовать ограничить клиентскую виртуальную машину одним ядром и не более 45% от ядра.

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

1

Я могу подтвердить, что это не поддерживается в VirtualBox. Тем не менее, документация кажется сомнительной, может ли VMware сделать это.

РЕДАКТИРОВАТЬ: Для VMware: «Это невозможно с продуктами Player и Server, но я считаю, что это относится к ESXi (бесплатному продукту с« голым железным гипервизором ») и платным продуктам, таким как VMWare Workstation».

1

Вы могли бы смоделировать это с закреплением процессора. Затем создайте несколько связанных с процессором процессов, закрепленных на том же процессоре. Расчетная скорость процессора (Реальная скорость процессора / число процессов).

Некоторое программное обеспечение для ограничения ресурсов позволит вам ограничить процент ресурсов. Это облегчит ограничение скорости процессора. Для этого вам нужно отключить доступ к запасным ресурсам.

0

В VirtualBOX есть ползунок, где вы можете настроить% хост-процессора, который может использовать гостевой процессор. Такой процент относится к каждому ядру.

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

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

Таким образом, если у вас есть дека-ядро (10 ядер) на хосте и три ядра на гостевом (три), и вы хотите, чтобы гостевая частота работала на X МГц, в то время как хост работала на Y МГц, просто проигнорируйте количество ядер, чтобы вычислить процент.

Формула будет выглядеть так: Процент = 100 * X/Y

Надеюсь, что это также помогает другим людям, приходящим сюда на будущее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .