Задать вопрос
@moozooh
Chief Technical Grammar Nazi

Как лучше загрузить Windows и весь системный раздел напрямую в RAM-диск при старте коипьютера?

Давно, года так с 2011-го, хочу замутить такую схему в качестве эксперимента по устранению бутылочных горлышек в I/O домашней рабочей станции.

Дано
  • Windows 10 Pro + рабочий софт + резидентный софт;
  • 64 ГБ быстрой памяти, из которых примерно 44–48 ГБ выделено под RAM-диск;
  • Системный раздел на 44–48 ГБ на SSD.



План
При запуске компьютера системный раздел полностью загружается в RAM-диск. Каждую ночь разница синхронизируется с содержимым на физическом диске (и ещё раз принудительно при срабатывании ИБП). Впоследствии такой же подход можно, например, применить к ноутбуку и, помимо прочего, выиграть в электропотреблении за счёт простоя носителя (да, гомеопатия — но приятно).

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

Смысл
Чтение и запись на диск происходит на скорости обращения к оперативной памяти, то есть даже без микроскопических задержек (потому что информация идёт мимо шины SATA/PCIe; теоретически, весь обмен должен происходить только между памятью и процессором). Не надо беспокоиться об износе, усилении записи и других глупостях. Плюс, если с системой произошло что-то непоправимое, в большинстве случаев можно будет откатиться обычной перезагрузкой, но это мелкий бонус.

Таким образом проблема недостатка I/O для наиболее требовательных рабочих приложений и системы будет решена раз и навсегда, и бутылить будет уже процессор (или, там, видеокарта). Плюс подавляющее большинство бытовых действий будет происходить с максимально возможной отзывчивостью. Решение интересно как с теоретической, так и с практической точки зрения.

Проблема
  • Как / с помощью чего можно создать загрузчик, который будет создавать виртуальную партицию, копировать в неё содержимое SSD и грузить Винду оттуда? Камнем преткновения видится именно создание виртуального раздела вне загруженной системы. Пока в голову приходит только Линукс + виртуалка, но работать через систему-прокладку кажется сомнительным решением. (Если бы я пользользовался только Линуксом, было бы в разы проще, понимаю.) Несколько лет назад один товарищ провернул тут похожий эксперимент с Win7 посредством GRUB4DOS, но, насколько я понял, в его случае образ лежал готовым на физическом диске ещё до загрузки, что, конечно, реализуемо, но не столь практично (конечно, если я правильно понял, что именно он сделал).
  • Как / чем лучше синхронизировать разницу, чтобы не создавать лишнюю нагрузку на физический диск? Теоретически можно обойтись NTFS-линками; синхронизация будет быстрее, но тогда будет много лишних записей, а это не вполне желательно.


Какие ответы не жду
  • Тебе это не нужно — нужно, очень нужно. :)
  • Неэффективно — большая часть диска будет занята статичными файлами — не спорю. Однако в этом случае я преследую не эффективность. Хочется, как минимум, опробовать технологию на реальных задачах. Лишнюю память в крайнем случае можно сбыть.
  • Тебе не хватит места — как ни странно, хватит.
  • Купи Optane или топовый PCIe-SSD — это удобнее, но ещё дороже, чем лишняя память, и всё равно не быстрее. И грузит шину.
  • Вопрос задан
  • 3152 просмотра
Подписаться 3 Средний 2 комментария
Решения вопроса 1
@nfire
Через гипервизор можно проверить если разница в производительности. Разместить один и тот же образ системы на ссд и рам диске и прогнать тесты.
Либо вот - forum.ru-board.com/topic.cgi?forum=62&topic=24404 Там правда про 7, но возможно и 10 так запустится.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Jump
@Jump Куратор тега Системное администрирование
Системный администратор со стажем.
Как лучше загрузить Windows напрямую в RAM-диск при старте коипьютера?
Вы не поверите, для этого ничего не нужно делать. Она в любом случае загружается в RAM при старте системы, сама собой.

эксперимента по устранению бутылочных горлышек в I/O домашней рабочей станции.
Любой современный SSD гарантированно устранит все бутылочные горлышки в I/O если вы положите систему на него. Дальнейшее увеличение IOPS диска не даст эффекта, по той простой причине, что узкого места уже не будет. Это факт, многократно проверенный и доказанный.

Не надо беспокоиться об износе, усилении записи и других глупостях.
Ну беспокоиться об износе SSD и HDD довольно глупо, в данном случае. А вот что такое усиление записи не совсем понятно.

Таким образом проблема недостатка I/O для наиболее требовательных рабочих приложений
Проблему недостатка I/O для требовательных приложений это никоим образом не решит, для этого надо грузить в RAM не систему, и даже не приложение, а данные с которыми работают приложения, и папку в которой эти приложения хранят свои кэши, и прочие промежуточные результаты.

Тебе не хватит места — как ни странно, хватит.
Вы серьезно 16гб занимает десятка?
И в этот размер входит файл подкачки? Или вы его отключили???

64 ГБ быстрой памяти, из которых примерно 44–48 ГБ выделено под RAM-диск;
Поверьте самое лучшее в этой ситуации отдать эту память системе, и не лепить RAM драйвов, так она будет использоваться наиболее оптимально и принесет больше пользы.
Исключение - старые, кривые приложения не умеющие эффективно использовать память и в наглую эксплуатирующие диск. Такие иногда есть смысл загрузить в рамдрайв. Но это редко.
И в любом случае - выигрыша против SSD это все равно не даст.

Не забывайте что любой RAMдрайв это драйвер который постоянно крутится в оперативной памяти, и неслабо грузит процессор.
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Системное администрирование
software engineer
SSD диск (тот же M2) достаточно быстрый, чтобы быть вполне сравнимым с рамдиском по скорости.
Можете на рамдиск запихнуть браузер с его кешем, но всю систему со ВСЕМИ программами - нет смысла
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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