Как использование памяти VirtualBox работает?

Я выполнял несколько VM's с VirtualBox, и использование памяти, о котором сообщают с различных точек зрения, и я испытываю затруднения при расчете, сколько памяти мои VMs на самом деле используют. Вот пример:

  • У меня есть VM, запускающий Windows 7 (как гостевая ОС) на моей Хост-машине Windows XP.
  • Хост-машина имеет 3 ГБ RAM
  • Гость VM является установкой, чтобы иметь основную память 1 ГБ
  • Если я выполняю Кормушку Задачи на гостевой ОС, я вижу использование памяти 430 МБ
  • Если я выполняю Кормушку Задачи на хосте ОС, я вижу 3 процесса, которые, кажется, принадлежат VirtualBox:
    1. VirtualBox.exe (1), с помощью 60 МБ памяти (У этого, кажется, есть большая часть использования ЦП),
    2. VirtualBox.exe (2), с помощью 20 МБ памяти
    3. VBoxSvc.exe, с помощью 11,5 МБ памяти
  • При выполнении VM использование памяти ОС Хоста составляет приблизительно 2 ГБ
  • Когда я закрыл VM, Хост, ОС, это возвращается к использованию памяти, снижается приблизительно до 900 МБ

Так ясно здесь существуют некоторые огромные различия. Я действительно не понимаю, как гостевая ОС может использовать 400 + МБ, в то время как Хост ОС только показывает приблизительно 75 МБ, выделенных VM. Там другие процессы используются VirtualBox, которые как, очевидно, не называют?

Кроме того, я хотел бы знать, выполняю ли я машину с 1 ГБ, который собирается взять на расстоянии в 1 ГБ от моего хоста ОС или только объем памяти, который в настоящее время использует Гостевая машина?

Обновление:

Кто-то выразил недоверие по моим числам использования памяти, и я не уверен, было ли то недоверие направлено на меня или мое создание отчетов Диспетчера задач ОС Хоста (который является, возможно, преступником), но для любых скептиков, вот снимок экрана тех процессов на хост-машине:

VirtualBox task manager

38
задан 19.08.2011, 13:52

3 ответа

Единственное место в Диспетчере задач, который, кажется, отражает полный объем, находится на вкладке производительности - Общее значение Заряда Фиксации примерно идет в ногу с суммой, выделенной VM. Я просто закрылся один с 1536 МБ, выделенными, и заряд фиксации перешел по сравнению с приблизительно 2.4 ГБ к 0.8 ГБ. Можно контролировать в некоторой степени это против Виртуального Поля с помощью Монитора производительности, и выбор Process: Частные Байты противостоят для VirtualBox, VBoxSvc, и также VirtualBox#1, № 2, и т.д. (один для каждого выполнения VM). Существует также Память: Зафиксированные Байты противостоят для всего.

12
ответ дан 07.12.2019, 08:50

Для понимания архитектуры процессов VirtualBox, посмотрите
Архитектура VirtualBox:

После того как Вы запускаете виртуальную машину (VM) с GUI, у Вас есть два окна (главное окно и VM), но три выполнения процессов. При рассмотрении системы от Диспетчера задач (в Windows) или некоторый системный монитор (на Linux), Вы будете видеть их:

  1. VirtualBox, GUI для главного окна;
  2. Другой процесс VirtualBox, который был запущен с-startvm параметра, что означает, что его GUI обрабатывает действия как оболочку для VM;
  3. VBoxSVC, сервис упомянул выше, который работает в фоновом режиме для отслеживания все включенные процессы. Это было автоматически запущено первым процессом GUI.

Как относительно памяти, Руководство пользователя указывает:

Основная память

Это устанавливает сумму RAM, которая выделена и дана VM, когда это работает. Указанный объем памяти будут требовать от хостовой операционной системы, таким образом, это должно будет быть доступно или сделано доступный как свободная память на хосте при попытке запустить VM и не будет доступно хосту, в то время как VM работает. Это - та же установка, которая была указана в "Новой Виртуальной машине" мастер, как описано с инструкциями под разделом, названным, “Создав виртуальную машину” выше.

Это означает, что гость вынимает из хоста:

  • Столько памяти, сколько это было объявлено с
  • Каждый VM является также исполняемым файлом VirtualBox, таким образом, необходимо добавить его память.

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

Кроме того, VirtualBox может оптимизировать использование памяти, не выделяя цельную определенную память VM.

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

12
ответ дан 07.12.2019, 08:50

Мог быть связан с Гостевыми Дополнениями VirtualBox.

Моя установка Ubuntu в настоящее время использует ~20MB, как сообщается WinXP. Это с VBoxAdditions.

Моя установка Lubuntu в настоящее время использует ~90MB, как сообщается WinXP. Просто установленный это; VBoxAdditions не были установлены.

Использование памяти действительно варьируется тем, что делает VM. У меня есть своя установка Ubuntu, работающая ziproxy; когда я делаю что-то, что говорит с ziproxy, использование памяти пронзает несколько мегабайтов, поскольку VM входит в употребление.

В целом, тем не менее, виртуализация совершенствовалась достаточно далеко, что спецификации, очевидные для гостя, не должны быть полностью выделены от хоста. Кажется, использует динамическое выделение и сильную подкачку страниц.

1
ответ дан 07.12.2019, 08:50

Теги

Похожие вопросы