@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 — это удобнее, но ещё дороже, чем лишняя память, и всё равно не быстрее. И грузит шину.
  • Вопрос задан
  • 425 просмотров
Сложность: Middle
Пригласить эксперта
Ответы на вопрос 3
  • Как лучше загрузить 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
    build engineer
    SSD диск (тот же M2) достаточно быстрый, чтобы быть вполне сравнимым с рамдиском по скорости.
    Можете на рамдиск запихнуть браузер с его кешем, но всю систему со ВСЕМИ программами - нет смысла
    Ответ написан
  • @nfire
    Через гипервизор можно проверить если разница в производительности. Разместить один и тот же образ системы на ссд и рам диске и прогнать тесты.
    Либо вот - forum.ru-board.com/topic.cgi?forum=62&topic=24404 Там правда про 7, но возможно и 10 так запустится.
    Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Вакансии с Моего Круга Все вакансии
Заказы с Фрилансим Все заказы