Как вы удерживаете конкретный процесс от виртуальной памяти (иначе говоря, подкачки)?

1

В окнах моя гостевая виртуальная машина продолжает помещаться в виртуальную память ... и затем виртуальная машина зависает ... потому что виртуальная машина вообще не может отвечать. Я даже жду 5 минут и ответа от ВМ нет.

Как сохранить определенный процесс, в данном случае связанный с виртуальной машиной, вне виртуальной памяти?

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


ОБНОВЛЕНИЕ согласно запросу:

  • хост: winxp-sp3-32-bit
  • физическая память хоста: 3000 МБ
  • гость: fedora14-64-bit
  • выделенный для гостей - 1400 МБ
  • память хоста, как видно из диспетчера задач при зависании гостя: обычно ~ 100 МБ
Тревор Бойд Смит
источник
Можете ли вы доказать, что виртуальная машина помещается в виртуальную память, а также в этом проблема? Скажите, пожалуйста, какова ваша гостевая ОС, сколько оперативной памяти выделено гостю и сколько свободно в гостевой системе, когда она зависает, и сколько общего ОЗУ и свободной оперативной памяти на хосте?
Призрак

Ответы:

1

Я вполне уверен, что в Windows вы не можете сохранить процесс из виртуальной памяти. IIRC вся память, кроме определенных областей ядра Windows, может быть выгружена. Я не думаю, что это ваша проблема, особенно если Windows не отвечает нормально.

привидение
источник
Таким образом, если у вас есть файл подкачки, вы не можете контролировать, где находится процесс, в виртуальной / физической памяти?
Тревор Бойд Смит
Правильно, Windows сделает все возможное, чтобы решить за вас - это не все или ничего, либо часто используемые части памяти приложений будут оставаться физическими, а менее используемые - будут выгружаться. Если виртуальная машина действительно агрессивно разбивается на страницы, это признак того, что вы выделили ей слишком много памяти или что вашей системе в целом не хватает. Учитывая 32-битный WinXP с 3 ГБ ОЗУ, я бы не выделил ВМ более 1 ГБ.
Призрак
Да, и 64-битный гость на 32-битном хосте (IMO) требует проблем, поскольку приложение VM, вероятно, должно эмулировать все 64-битные инструкции до 32-битных и обратно, что может быть довольно узким местом. Попробуйте создать 32-битную виртуальную машину Fedora и посмотрите, есть ли у вас такая же проблема. Кроме того, если у вас есть процессор с функциями виртуализации (Intel VT и AMD-V iirc), убедитесь, что они включены в BIOS.
Призрак
К вашему сведению, после того, как вы включите виртуализацию на своем mobo, размещение 64-битного гостя на 32-битном хосте не станет проблемой. Как VirtualBox, так и VMWare надежно реализуют эту функцию. (Вы можете перейти на их соответствующие веб-сайты и увидеть информацию об этой конкретной функции).
Тревор Бойд Смит
Я склоняюсь к ... «Я думаю, что выделил слишком много для ВМ». Недавно я сократил виртуальную машину с 1400 до 1200 МБ, и у меня не было зависания гостя более часа. Учитывая, что я обычно зависал каждые 30 минут, а прошло больше часа, я думаю, что проблема заключалась в выделении слишком большого количества памяти.
Тревор Бойд Смит
-1

Установите размер файла подкачки на 0 :) Вы будете удивлены, насколько лучше работает ваша система.

В XP
Мой компьютер-> Свойства-> Дополнительно-> Производительность: Настройки-> Дополнительно-> Виртуальная память: Изменить -> «Нет файла подкачки» -> Установить-> ОК

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

Код Блинг
источник
1
Есть хорошая дискуссия о том, использовать или нет подкачку Windows ... serverfault.com/questions/23621/… . Принимая во внимание, что за «сохранить пейджинг в настройках по умолчанию» достаточно много голосов, я буду продолжать пейджинг.
Тревор Бойд Смит
Хорошая находка. Не забывайте, что не существует единого решения для всех. Все зависит от того, как вы используете свою машину. Вы должны попробовать его, даже если вы потом восстановите старые настройки. У меня есть машина 3 ГБ, и я работаю без файла подкачки, и благодаря этому я смог устранить существенные проблемы с производительностью. Но я должен наблюдать за моим общим использованием памяти.
Код Блинг
Да, я бы не стал отключать файл подкачки, все, что вам нужно, - это один мошеннический процесс, который поставит систему на колени и не сможет восстановиться. Windows достаточно умна в том, что в некоторых ситуациях она использует ОЗУ для поддержания системного кэша, даже если это означает кэширование нечасто используемой памяти, чтобы ускорить выполнение общих функций ОС и часто запускаемых приложений.
Призрак
Отключение файла подкачки может не сработать, но опять же, попытка не повредит. По крайней мере, вы будете знать, действительно ли это вызывает замедление работы вашей виртуальной машины.
Код Блинг
1
К вашему сведению, ограничение Windows в 3 ГБ вызвано «функцией» Windows, которая называется «игнорировать возможности PAE оборудования». Все 32-битные дистрибутивы Linux могут иметь 64 ГБ оперативной памяти (но каждый 32-битный процесс ограничен 2 ГБ памяти).
Тревор Бойд Смит