1

У меня есть виртуальная машина Windows VirtualBox, настроенная на использование 3 из 4 процессоров (см. Скриншот), но когда мой компьютер недавно завис (см. Описание ниже), недавно я использовал top и обнаружил, что процесс VirtualBox использует 400% моего процессора.

Разве это не значит, что на это ушли все 4 моих процессора? Как это возможно? Как я могу предотвратить использование VirtualBox всех моих процессоров?

вкладка процессора виртуальной коробки

аппаратное ускорение

РЕДАКТИРОВАТЬ

Под «заморозкой» я подразумеваю, что это стало почти неотзывчивым. Я мог заставить курсор двигаться с большой задержкой (читай: немного подвинь мышь, затем подожди 45 секунд), но другого взаимодействия я не заметил. Я нажал Ctrl+Alt+F1, чтобы добраться до консоли, затем побежал вверх, но обе эти операции произошли со значительной задержкой. Другие действия клавиатуры, такие как Alt+F2, не дали никакого эффекта (или ничего, пока я не перестал ждать).

1 ответ1

1

Это распределение - это число процессоров GUEST, а не число процессоров HOST, которые можно использовать. Хотя они часто очень похожи, virtualbox пытается использовать как можно меньше ЦП, но они не одинаковы. Virtualbox и любому другому программному обеспечению для виртуальной машины потребуется использовать некоторый процессор вашего хоста для эмуляции других устройств. (например, видеокарта)

Тот факт, что ваша мышь стала «липкой», также будет означать, что VB использует много потоков, чтобы поддерживать эти эмуляции в порядке. Если бы он использовал только четыре, ядро все равно предоставило бы ваш графический интерфейс.

В связи с этим, я бы посоветовал вам использовать неправильный инструмент для ограничения количества процессоров, которые использует virtualbox. Вас не очень интересует гость, использующий 3 или 4 ядра, вы больше заинтересованы в других ваших задачах, получая значительную долю процессора.

Функция ядра Linux, которую я предлагаю вам изучить, называется cgroups, которая позволяет классифицировать процессы по группам и гарантировать, что эти группы используют только тот процессор, который вы разрешаете. Таким образом, ядро может быть сконфигурировано так, чтобы VirtualBox предоставлял все 400% ЦП, если он не нужен вашему графическому интерфейсу, но для того, чтобы дать всем остальным абсолютный приоритет (скажем) двум из этих ЦП, когда им есть чем заняться.

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