Используйте RAM-диск, чтобы получить максимальную производительность от временных виртуальных машин.
Недавно мне пришлось настроить несколько виртуальных машин для использования с одной из других статей, над которыми я работал. Хотя я выполнил свою работу, производительность одной из виртуальных машин лучше всего охарактеризовать как мучительно медленную. Конечно, не могу сказать, что был удивлен. Виртуальные машины работали на устаревшем лабораторном оборудовании, которое поначалу работало немного медленно. Когда вы добавляете тот факт, что эта конкретная виртуальная машина выполняла действительно интенсивную рабочую нагрузку ввода-вывода, быстро становится очевидным, почему виртуальная машина работала так медленно.
Ускорение для временных ВМ
Но что, если бы существовал простой способ повысить производительность виртуальной машины на том же оборудовании? Хотите верьте, хотите нет, но можно дать плохо работающей виртуальной машине действительно хорошую производительность без обновления оборудования. Однако, как и во всех чудесных решениях, есть несколько предостережений. Самое большое предостережение в этом случае заключается в том, что метод, который я собираюсь вам показать, идеально подходит для лабораторных виртуальных машин, но, вероятно, это не то, что вы хотели бы делать в производственной среде.
Основная концепция, лежащая в основе этой техники, существует уже несколько десятилетий, и все же я почти никогда не слышу, чтобы кто-нибудь упоминал об этом. На самом деле, я и сам забыл об этом, пока YouTube не порекомендовал видео, демонстрирующее прохождение видеоигры 1980-х годов.
Еще в 1980-х у меня был друг, который очень увлекался компьютерными играми. Поскольку на его ПК не было жесткого диска, ему приходилось запускать игры с гибких дисков, которые в то время были доминирующим типом съемных носителей. Короче говоря, дисководы гибких дисков не были известны своей скоростью, и была одна конкретная игра (та же самая игра, показанная в видео на YouTube), в которую невозможно было играть, потому что производительность диска на ПК моего друга была очень низкой. Коллективно мы с другом решили проблему, настроив RAM-диск.
RAM-диск работает, используя часть физической памяти компьютера для хранения. Операционная система обрабатывает RAM-диск так, как если бы это был еще один жесткий диск, подключенный к компьютеру.
В некотором смысле это полная противоположность тому, как обычно работает Windows. Несколько лет назад память была очень дорогой, поэтому Microsoft внедрила функцию виртуальной памяти, чтобы Windows могла использовать физическое хранилище для компенсации нехватки оперативной памяти. Даже сегодня Windows 10 по-прежнему использует виртуальную память, как показано ниже. Однако вместо того, чтобы использовать физическое хранилище для восполнения нехватки оперативной памяти, RAM-диск использует системную оперативную память в качестве альтернативы использованию физического хранилища.
RAM-диск: преимущества и недостатки
Преимущество использования RAM-диска, конечно же, заключается в том, что RAM намного быстрее, чем физическое хранилище, особенно хранилище на жестком диске.
Есть два основных недостатка использования RAM-диска. Во-первых, память на RAM-диске непостоянна. Как только вы выключаете компьютер, RAM-диск (и все, что на нем хранится) исчезает.
Другим большим недостатком является то, что RAM-диски потребляют часть вашей физической памяти. В случае хоста Hyper-V это означает, что память обычно может использоваться для размещения дополнительных виртуальных машин. О, и еще кое-что… Я, честно говоря, не уверен, что произойдет, если вы попытаетесь выполнить живую миграцию виртуальной машины, работающей на RAM-диске. Я подозреваю, что живая миграция, вероятно, сработает, если RAM-диск использует букву диска, совпадающую с буквой диска, используемой для хранения ВМ на целевом хосте.
Создать RAM-диск очень просто. Вы можете скачать ряд бесплатных утилит, которые позволят вам создать RAM-диск с минимальными усилиями. Для целей этой статьи я использую бесплатный инструмент под названием ImDisk. Как вы можете видеть на рисунке ниже, эта утилита просто требует от вас указать размер RAM-диска, который вы хотите создать, а затем выбрать файловую систему и букву диска и нажать «ОК». Процесс не может быть проще.
Итак, какой прирост производительности может дать вам RAM-диск? Что ж, для целей этой статьи я решил провести простой, хотя и ненаучный тест. Я создал виртуальную машину Hyper-V, запустил секундомер, а затем посмотрел, сколько времени ушло на установку Windows 10. Я остановил часы, как только виртуальная машина отобразила рабочий стол Windows. Как видно на рисунке ниже, для достижения этой точки потребовалось 27:07.
После завершения моего базового теста я удалил виртуальную машину, а затем создал идентичную виртуальную машину, используя RAM-диск вместо хранилища на жестком диске. Я снова использовал секундомер, чтобы определить, сколько времени потребовалось для установки Windows 10. На этот раз установка заняла всего восемь минут и 16 секунд. Другими словами, я сократил время установки почти на 19 минут!
Когда я устанавливал Windows на RAM-диск, мне пришло в голову, что производительность по-прежнему не так хороша, как могла бы быть, потому что Windows устанавливалась из файла ISO, который находился на жестком диске. В таком случае я создал второй RAM-диск и скопировал на него ISO-файл Windows 10. Затем я переформатировал свой оригинальный RAM-диск и снова попытался выполнить установку. На рисунке ниже показано время установки, равное шести минутам и восьми секундам. На самом деле время установки было на несколько секунд меньше, потому что у меня были некоторые проблемы с остановкой таймера, но давайте предположим, что 6:08 точно. Это означает, что я сократил время установки еще на две минуты и в целом сократил время, необходимое для установки Windows, примерно с 27 минут до примерно шести минут!
Деньги не потрачены
Я признаю, что есть и другие, возможно, более практичные способы повышения производительности виртуальной машины. Однако, что примечательно в этом конкретном решении, так это то, что я добился очень значительного прироста производительности, не тратя денег. Как я уже говорил ранее, временный характер RAM-дисков означает, что это решение, вероятно, лучше всего подходит для использования с временными виртуальными машинами, такими как те, которые используются в лабораторных средах. Тем не менее, прирост производительности неоспорим.