Пользователь
0,0
рейтинг
1 июля 2013 в 18:48

Windows на RAM-диске


В наш век мы все любим скорость. Мы любим быстрый транспорт, быстрые службы доставки, скоростной интернет. И, разумеется, быстрые компьютеры. У нас есть шестое чувство, которым мы детектируем милли/микросекундные задержки. Частенько появляется желание что-нибудь да разогнать.

Но что же разгонять? Что тормозит нам работу и создает дискомфорт? Наши процессоры работают на многогигагерцовых частотах, гоняют электроны на релятивистских скоростях. Не отстают от них и память с шинами передачи данных. Но как только дело касается периферии… здесь притаился неторопливый макромир. Это не электронами жонглировать. Будьте добры дождаться, пока диск в DVD-приводе раскрутится, пока придет очередной байт из порта ввода/вывода, пока HDD подведет свою считывающую головку в нужное место пластины. Ну ладно, DVD и COMпортами мы пользуемся нечасто(если вообще пользуемся), а вот HDD… У нас на нем все-таки ОС лежит, а в ней многие тысячи файлов, и кто знает, в какой момент они могут понадобиться. То лог записать, то dll подгрузить, то шрифт, то реестр, то еще что-то. А на некоторых HDD множество одновременных обращений может приводить к хабраэффектусущественному падению скорости работы — наблюдаю такое на своих WD Green.

Казалось бы, тут нам должны помочь команда славных защитников вселенной по имени Файловый Кэш, Prefetch, Superfetch, и их помощник ReadyBoost. Да, они помогают, но частенько бывает, что и промахиваются — и тогда приходится наблюдать курсор ожидания.

Но что это? Я слышу в зале шум, там скандируют — SSD! SSD! Что тут сказать, SSD — однозначно круто. 200-300мб/с и даже выше, практически мгновенный доступ, никакого шума… ну просто чудеса. Но про SSD и так написана куча тем, а раз уж разгонять… может, есть чего побыстрее? Хм. Есть у нас что-нибудь быстрее флеш-памяти в SSD? SSD подороже? Raid0 из SSD? А еще быстрее? RevoDrive? О! DDR3! (Кто там крикнул «L1 cache»? Юморист!)

Мы знаем про RAM-диски, иногда используем их как временное хранилище — чтоб быстрей работало. Так что если взять да и переместить всю систему в RAM? Должно работать намного быстрее любого SSD, и уж подавно быстрее HDD, не так ли? Или файловый кэш и так должен давать нам похожий эффект? Возможно, разницы и не будет заметно. Ну так почему бы не попробовать? В моем компьютере 16 гб ОЗУ, хватает на все и еще остается. Неплохо бы задействовать то самое оставшееся. Поехали!

0) Чеклист:
— 16 гб RAM, или больше. Хотя можно попробовать и на 8. А вот 4 хватит разве что для XP.
Grub4Dos
Wincontig
BootIce
Partition Wizard или что-то подобное для клонирования разделов,
— драйвер Firadisk
— дистрибутив Windows x64 (можно и x86, но свободной памяти будет не более 3.5гб). Я проверял на WinXP(x86), Win7, Win8. Весьма желательны «облегченные» версии, ведь память ОЗУ не резиновая.
— установленная и работающая Win7 (или Win8)

1) Внимание! если у вас несколько жестких дисков — во избежание проблем делайте все последующее на HDD, отличном от системного. Системный вообще лучше не трогать и по возможности отключить, а Win7 установить для опытов на другой диск. Мне не известна ваша конфигурация, какие-то действия могут поломать вам загрузку. Неплохо бы предварительно запастись восстановительным LiveCD/USB, или хотя бы установочным диском Windows а также хотя бы примерно понимать, что делаете и как вернуть все назад. Для уверенности можно сначала провести опыт на виртуальной машине.

Сначала немного теории. Grub4Dos — это менеджер загрузки, для организации мультизагрузочных систем. Среди всего прочего — может создавать виртуальные устройства и работать с ними так же как и с обычными дисками. Виртуальный диск может быть смонтирован на файл, или же в память. При монтировании в память содержимое файла-источника копируется в память и дальнейшая работа ведется уже оттуда. Как источник можно использовать файлы .ima (образы дискет), .iso (образы CD/DVD) а также .img (RAW образы HDD). Родные для Win7 файлы .vhd (фиксированного размера, не динамические и не дифференциальные) представляют собой те же .img, но с небольшим заголовком и их тоже можно подключать.
Созданные при помощи Grub4Dos виртуальные диски доступны в реальном режиме. Windows же увидит их только при наличии специального драйвера. Такие драйверы существуют — это Firadisk (работает с дисками в памяти) и WinVBlock (работает с образами в файлах). При наличии в ОС нужного драйвера она сможет работать с дисками, созданными в Grub4Dos. К сожалению, драйверы не подписаны и для их работы в x64 системе нужно отключить проверку подписей драйверов. Таким образом, ход действий: готовим VHD с установленной Windows, где отключаем проверку подписей, устанавливаем Firadisk, затем подгружаем VHD еще до загрузки Windows через Grub4Dos и вперед.

Сначала установим на нашу машину Grub4dos. Запускаем BootIce, выбираем диск, с которого будем грузиться, ставим Grub4dos в MBR, кладем в корень любого раздела файлы grldr и menu.lst.

В menu.lst пишем:

#Это для загрузки вашей предыдущей Win7
title Windows (previous)
find --set-root /bootmgr
chainloader /bootmgr

Команда «find --set-root» выполняет поиск указанного файла и делает первый раздел, где этот файл был найден, текущим. Поэтому проверьте, не лежат ли у вас лишние файлы bootmgr на других разделах. Если вам известно, что системный диск — это hd0, можно написать прямо — chainloader (hd0,0)/bootmgr
Далее через управление компьютером-управление дисковыми устройствами создаем в корне нашего рабочего раздела файл VHD фиксированного размера гигабайт этак на 10 (можно и больше, чтобы хватило для установки), форматируем в NTFS, отключаем диск и дефрагментируем его файл при помощи Wincontig.

Сейчас надо из этого VHD получить образ диска с готовой к работе Windows, драйверами для вашего оборудования и поддержкой загрузки из VHD. Этого можно добиться разными способами.

Способ 1, рекомендуемый. Для Win7 редакций Корпоративная и Максимальная, и для Win8. Установка системы в VHD штатными средствами.
Подробнее
После загрузки инсталлятора жмем Shift-F10, и выполняем:
diskpart
select vdisk file="D:\win7.vhd"
attach vdisk

где «D:\win7.vhd» — путь к файлу VHD. Буквы дисков могут отличаться от вашей основной системы, их можно посмотреть запустив, к примеру notepad и открыв в нем диалог выбора файла.
Продолжаем, VHD появится в списке устройств для установки. После установки в вашем загрузочном меню Windows появится новая запись и окажется по умолчанию. Это и есть загрузка в VHD.

Способ 2. Для всех систем. Установка в отдельный раздел на диске. Устанавливаем Windows туда стандартно, и в самом конце после всей подготовки клонируем раздел в VHD.

Способ 3. Для всех систем. Устанавливаем систему в VHD на виртуальной машине, проделываем всю подготовку, а затем грузимся с этого VHD на реальном железе. Есть вероятность возникновения проблем с драйверами оборудования при переносе на реальное железо. Лучше перед переносом выполнить sysprep.

Способ 4. Для WinXP. Используем драйвер WinVBlock.
Подробнее
В menu.lst добавляем вот такие три записи.
title Start -  TXT-mode XP Setup vhd
find --set-root /winxp.vhd
map --mem /winvblock.ima (fd1)
map --mem /winvblock.ima (fd0)
map /winxp.vhd (hd0)
map --mem /xp.iso (0xff)
map --hook
chainloader (0xff)

title Continue GUI-mode XP Setup vhd
find --set-root /winxp.vhd
map --mem /winvblock.ima (fd1)
map --mem /winvblock.ima (fd0)
map /winxp.vhd (hd0)
map --mem /xp.iso (0xff)
map --hook
root (hd0,0)
chainloader /ntldr

title Boot XP vhd
find --set-root /winxp.vhd
map /winxp.vhd (hd0)
map --hook
root (hd0,0)
chainloader /ntldr

Что здесь делается:
-подключается winxp.vhd как жесткий диск (файл VHD обязательно нужно дефрагментировать при помощи WinContig, иначе Grub4Dos откажется его подключать)
-подключается образ дискеты winvblock.ima с драйверами WinVBlock, грузится в память.
-подключается образ установочного CD xp.iso, грузится в память.
-записей для установки две, т.к. установка WinXP состоит из 2х стадий — текстовый и графический режим. Сначала выбираем TXT, при второй загрузке — GUI. Разница лишь в том, откуда грузимся — с CD или HDD.
-нажимать F6 и выбирать драйвер не нужно, интегрировать в дистрибутив тоже, достаточно иметь его на образе дискеты.
-после установки в Grub4Dos выбираем Boot и загружаемся в систему, которая установилась в VHD.

Для Win7, а тем более для x64 редакций это так просто не сработает. Нужна особая, уличная магия.
Впрочем, у меня так и не получилось заставить WinVBlock работать с Win7. Может, у вас получится.

Cпособ 5. Для Win7 любых редакций. Используем VBoot. Это тоже драйвер, позволяющий грузиться в VHD. Он подписан и позволяет устанавливать x64 системы. К сожалению, платный, но доступна демо-версия, которой для установки достаточно.
Подробнее
Выставляем время на 2011 год. (иначе при загрузке получите BSOD)
В корень диска кладем папку VBoot, vbootldr и vbooldr.mbr.
В vboot\grub\grub.cfg ищем записи Windows 7 VHD и Windows 7 Install и меняем на вот такие:
menuentry "Windows 7 VHD" {
  vboot harddisk=(LABEL=D)/win7.vhd
}
menuentry "Windows 7 Install" {
  vboot harddisk=(LABEL=SYS)/win7.vhd cdrom=(LABEL=SYS)/win7.iso boot=cdrom
}

Метку раздела, на котором лежат файлы win7.vhd и win7.iso (дистрибутив Win7) — меняем на SYS (хотя не важно какую, лишь бы совпадало). У меня Vboot почему-то не хочет распознавать пути вида (hd0,1). Еще можно обращаться по UUID, но метки проще.

В menu.lst добавляем запись:
title VBoot
find --set-root /vbootldr.mbr
chainloader /vbootldr.mbr

Перезагрузка. В Grub4Dos идем в Vboot, а в нем — в Windows 7 Install. После загрузки инсталлятора жмем shift-F10, запускаем notepad, открываем диалог выбора файлов и смотрим, на какой букве находится диск с Vboot. Допустим, это D:. Возвращаемся в командную строку и пишем для 64-битных редакций —
D:\vboot\tools\amd64\vbootctl setup
или для 32-битных
 D:\vboot\tools\x86\vbootctl setup
Это установит драйвер Vboot и примонтирует виртуальные устройства. Затем продолжаем установку на появившийся в списке устройств VHD, и грузимся через запись Windows 7 VHD. После окончательной настройки (см. ниже) удаляем Vboot командой vbootctl uninstall и тогда можно вернуть время на текущее.


И вот Windows установлена и загрузилась.
Во первых, проверим через Bootice, не снес ли нам установщик Grub4Dos из MBR. Если снес — снова ставим.
Во вторых, проверим, есть ли на системном разделе загрузчик Windows — файл bootmgr и папка Boot (в случае Win7/8). Они имеют атрибуты скрытых и системных, включите их отображение. Если нет — значит установщик увидел этот загрузчик где-то еще и добавил опцию своей загрузки туда, или же создал скрытый 100мб раздел и разместил все там. Это не дело, загрузчик на системном разделе нам нужен. Поэтому создаем его:
bcdboot c:\windows /s c: 

И отключаем в нем проверку подписей драйверов:
bcdedit /store c:\boot\bcd /set {default} testsigning ON
bcdedit /store c:\boot\bcd /set {default} nointegritychecks ON
bcdedit /store c:\boot\bcd /set {default} loadoptions DDISABLE_INTEGRITY_CHECKS

В действующем загрузчике тоже отключаем:
bcdedit /set testsigning ON
bcdedit /set nointegritychecks ON
bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS

Перезагрузка для включения тестового режима и устанавливаем драйвер Firadisk: hdwwiz (hdwwiz.cpl в XP), установка вручную, все устройства, установить с диска и выбираем .inf файл.

4) Теперь производим все обычные манипуляции: устанавливаем оставшиеся драйверы, настраиваем оборудование, сеть, рабочий стол, ставим DirectX/.NET/vcredist, и тому подобное. Перенесем файл подкачки на другой раздел, удалим временные файлы и сожмем системный раздел средствами NTFS. Нам ведь это все еще в память грузить, каждый мегабайт на счету. У меня получилось около 4 гб для Win7.

Теперь ужимаем VHD до приемлимого размера (я добавил пару гб на всякий случай, получилось 6). Кстати, а как определить доступный размер? На экране меню Grub4Dos в верхней строке есть строка вроде Mem: /639K/13582M/512M.

Это доступные области памяти, в которые он может загрузить образ. Но он может загружать образ только целиком в одну область, так что размер нового VHD не должен превышать самое большое значение из этой строки, иначе получите ошибку.

Грузимся в предыдущую Win, монтируем win7.vhd, создаем еще один vhd уже конечного размера и копируем один в другой через редактор разделов вроде Partition Expert. (Если вы решили последовать способу установки 2 — сейчас самое время склонировать ваш системный раздел в VHD) Заменим прежний файл на новый, опять дефрагментируем через Wincontig. Попробуем загрузиться в новый VHD. Проблем возникнуть не должно.
Можно вместо всего этого использовать специальную программу для урезания и сжатия уже установленной Win7 — VHD_W7_Compact. Заявляется, что может урезать до 600мб.

5) Пора таки загрузиться из RAM! Добавим в menu.lst еще несколько строчек:
title Boot Win7 from RAM
map --mem /win7.vhd (hd0)
map --hook
chainloader (hd0)/bootmgr

(для XP вместо /bootmgr пишем /ntldr)
И наконец загружаемся, выбрав Boot Win7 from RAM.
Минуту-две VHD копируется в память, несколько секунд загрузки и… появляется рабочий стол. Ура, семерка работает без использования HDD, причем вроде неплохо работает.



Можно еще добавить хитрый способ загрузки Win7 напрямую из VHD с сохранением изменений:
title Boot Win7 from VHD (Firadisk)
find --set-root --ignore-floppies /win7.vhd
map /win7.vhd (hd0)
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
map --hook
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/win7.vhd,boot;\n\0
rootnoverify (hd0,0)
chainloader /bootmgr

Чтобы это работало — в .inf файле Firadisk нужно заменить «LoadOrderGroup = Boot Bus Extender» на «LoadOrderGroup = SCSI miniport».
Здесь Firadisk заставляем работать с образом не в памяти, а на диске. Оно заметно тормозит, так что лучше все же применять способ установки 1 с родным VHD boot.

Вот тут есть еще одна статья о загрузке Win7 из RAM.

Ну а c линуксами можно попробовать вот так.

Я использую такую конфигурацию на домашнем компьютере с прошлой осени, уже более полугода. Попробую упорядочить субъективные впечатления:
Плюсы:
+ Действительно, работает быстренько. Программы из памяти запускаются мгновенно (что очевидно). По стабильности работы нареканий нет — компьютер работает неделями и месяцами.
+ Нет лишних звуков от HDD.
+ Понятия «износ», «количество циклов чтения/записи» — для RAM несущественны.
+ Побочный плюс — получилась неизменяемая, неубиваемая система. Можно одноразово ставить всякие кривые программы (к примеру, для восстановления USB flash — они обычно ставят свои драйверы, которые потом трудно выковырять) не рискуя что-либо испортить. Перезагрузка и как ничего и не было.
+ Побочный плюс — VHD это круто. Никаких больше разделов диска, просто файлы, которые элементарно копируются/перемещаются/удаляются/бэкапятся без всяких акронисов/парагонов/gparted-ов.

Минусы:
— Честно говоря, разницы с хорошим SSD по скорости не заметно. В обоих случаях придраться к быстродействию негде.
— Конечно же, тратится драгоценная память. Вынь да положь 6-8 гигабайт. В моем случае остатка в 10гб мне хватает, а если будет мало — можно и в режиме VHD загрузиться.
— 6-8 гб для Windows 7 — все же очень мало. Одни обновления Windows Update быстро съедят все место. А еще захочется установить любимые программы… кому-то и 100гб системного раздела может быть мало (а некоторые пропагандируют вообще не разбивать диски на разделы). В моем случае я разместил на системном разделе только самые востребованные программы, а все остальное в виде portable версий держу на HDD. Все-таки это домашний компьютер, на нем нет жадных до памяти и места на системном диске монстров вроде SQL Server, Visual Studio, Adobe CS, MS Office (хватает и портабельного LibreOffiсe). Пока все хорошо.
— temp приходится переносить на другой диск. Некоторые инсталлеры никого не спрашивая распаковываются именно туда и свободного места может не хватить.
— Приходится отключать проверку подписей драйверов. Тут уж ничего не поделать.
— У неубиваемости есть другая сторона. Для каждого изменения в настройках, для каждого обновления, для каждой установки программы/драйвера для постоянного использования необходимо перезагружаться в режим работы с VHD — иначе все будет потеряно при перезагрузке. Если какая-то ваша программа хранит что-то свое в профиле (например, игры держат там сохранения) — то и профиль желательно переносить на другой раздел.
— Загрузка 6-8гб в память занимает много времени — не похвастаешься 10 секундной загрузкой.
— По понятным причинам невозможно использовать гибернацию. Но в обычный сон система уходит и нормально просыпается.

Но я снова слышу крики в зале. «И чего только не придумают, лишь бы SSD не покупать!», «Да это ж бред, выкидывать столько памяти за просто так!», «Какие-то левые кривые дрова ставить?», «Не нужно!». Согласен. Рекомендовать такой подход я не буду. Это скорее занятный эксперимент, чем рабочее решение. Спасибо за внимание, теперь можно постить картинки с хлебными троллейбусами.

P.S. Большая благодарность разработчикам Firadisk и WinVBlock — karyonix и Shao Miller, а также форуму reboot.pro.
Sulako @Sulako
карма
45,8
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (73)

  • +2
    Есть предложение ускорить процесс загрузки: вместо копирования vhd в RAM можно распаковывать его — процессор куда быстрее hdd. Не знаю, работает ли оно в grub4dos, но memdisk от grub2/syslinux так умеет.
    • 0
      Изменять сложнее будет, т.к. придется после изменений «запаковывать».
    • 0
      То есть держать на реальном носителе сжатый vhd? Попробовал сейчас на виртуалке с образом XP — сжал его средствами NTFS. G4D отказался подключать — говорит, файл не найден. Поддержки сжатия образов там, насколько я знаю, нет. Впрочем, файлы внутри образа и так уже сжаты, не думаю что был бы большой выигрыш от сжатия снаружи.
      • +3
        Месье знает толк в извращениях…
        GZIP, LZO, но никак не сжатие посредством NTFS. Файл же потом сложно прочитать будет — необходима полная поддержка ФС.
        • 0
          Сжатие в .gz сработало для подключения образа как ram-диска. Действительно, загрузка прошла быстрее. Но сохранять прозрачно изменения в .gz не представляется возможным.
  • –7
    А говорили, что в Windows нет нормальной командной строки…
  • 0
    Для быстрого копирования в память можно использовать DOM в качестве источника: www.nix.ru/autocatalog/ssd_espada/Espada_SSD_4Gb_USB10pin_145845.html и www.nix.ru/autocatalog/ssd_espada/Espada_SSD_8Gb_SATA_145844.html", на него же можно писать изменения, т.к. число циклов будет равно количеству включений компа.
    • +2
      Не хочу Вас огорчать, но характеристики

      Скорость чтения До 24 Мб/сек
      Скорость записи До 6 Мб/сек

      раза в 3-4 медленнее современных HDD по чтению и в 10-15 по записи
      • –3
        24 Мб/сек это ~200МБ/сек… какие разы?! Покажите USB или SATA-винт на 800МБ/сек
        • 0
          Там таки 24 мегабайта. В любом случае ниже написано Пропускная способность интерфейса 480 Мбит/сек
          Т.е. вы больше 60 Мегабайт в сек не выжмите и то на самом деле будет не более 40 по USB.
          • 0
            Товарищ может продемонстрировать конкурента и на третьих интерфейсах: USB3/SATA3
            • 0
              Не поможет, там только 1 чип.
        • 0
          Очнитесь, из каких мегабайт вы в мегабиты переводите.
          • 0
            1 к 8, у вас иначе? Читает со скоростью 24 мегабайт в секунду(по паспорту, реально 18); я пишу, что это почти 200 мегабит в секунду. В чем у вас претензия?
            • 0
              Я подумал, что вы запутались в мегабитах и мегабайтах. Но раз вы не запутались, то дело ещё хуже обстоит, чем я думал. Вы действительно думаете, что выше 24 Мбайт/сек чтения и 6Мбайт/сек записи сейчас у SATA нет? Если вас именно на внешних устройствах заклинило, то рекомендую почитать про eSATA и USB3.0.
              • –2
                Почему вы не читаете прежде чем написать? См. habrahabr.ru/post/185172/#comment_6442148

                Более того, указано ведь, что девайсы SATA2 и USB2. Увидел вкусняшку интересненькую, поделился с хабром — карма минус, коммент минус. И вам всем пожалуйста!

                Какие внешние устройства, вы линк открывали?
                • 0
                  Я линк открывал, да. Только при чём здесь они, если в ответ на вполне резонное замечание о низкой скорости ваших устройств, вы отвечаете «Покажите USB или SATA-винт на 800МБ/сек»?
                  • 0
                    Товарищ пишет, что девайсы в 3-4 раза медленнее современных HDD, я ответил что это не так. Вы тоже считаете, что скорость современных HDD это порядок 800 МБ/сек? (все в контексте 'чтения')
                    • 0
                      Давайте ещё раз. Вам говорят, что:

                      Скорость чтения До 24 Мб/сек
                      Скорость записи До 6 Мб/сек

                      раза в 3-4 медленнее современных HDD по чтению и в 10-15 по записи


                      Девайсов со скоростью чтения (24 * 4 =) 96 Мбайт/сек и записи (6 * 15 = ) 90 Мбайт/сек полно. Это уровень дисков ещё первого поколения SATA. Посмотрите на market.yandex.ru, что ли…
                      • 0
                        Посмотрел, на первой странице кроме SATA3 и SSD других нет. Да и никак DOM это не компроментировало бы, я показал самые бюджетные платы от 700 р. Троллинг сплошной.
                        • 0
                          Я как бы прошу прощения, но не могу пройти мимо. У меня флешка по обычному USB дает 30 Мб/с чтение и 20 Мб/с запись… Стоит 8 баксов. А что уж говорить о типичном HDD, который дает минимум 100 в каждое направление?
                          • –1
                            Вы серьезно все за одно? )) Здесь основное преимущество — установка на мат. плату, вы долго скоростями меряться будете? А у меня RevoDrive 's'есть'/s' был, сдох через полгода.
                            • 0
                              установка на мат. плату

                              Это который подключается к USB-коннектору? Да за такие деньги можно 8 ГБ флэшку с такой же скоростью взять, все компы с них грузятся.
                              • 0
                                По ссылкам не ходи, отвечай сообразно своим догадкам.
                                Неужели не заметно SATA разъем у вышеприведенных устройств?
                            • 0
                              Есть у меня такая флешка, что на материнку ставится. Не каждая материнская плата его видит. Некоторые вообще отказываются грузится.
                            • +1
                              Уж извините, но это либо Вы тролите нас, либо не завидую Вашему работодателю (а судя по интересам в Вашем профиле, Вы админ).

                              Как уже было сказано выше, максимальная пропускная способность шины USB 2.0 равна 480 Mbit/sec ~ 60 Mbyte/sec. Максимальная же пропускная способность шины SATA 1.0 равна 1,5 Gbit/sec ~ 180 MByte/sec.

                              Понятно, что все это теоритический максимум, который достижим при идеальных условиях. На практике же, для современных HDD производительности SATA 1.0 не хватает.

                              Максимальная пропускная способность SATA 2.0 в 2 раза больше и составляет 3 Gbit/sec ~ 375 Mbyte/sec. Для современных HDD данной шины достаточно, но для SSD и ее стало маловато, поэтому разработали стандарт SATA 3.0 6 Gbit/sec. Но ушлые маркетологи пихают надписи «SATA 3.0 supported» на все HDD (хотя и SATA 2.0 им достаточно).

                              Кстати, последние версии HDD от WD и Seagate имеют производительность последовательного чтения/записи на уровне, равном 160 Mbyte/sec ~ 1280 Mbit/sec. Так что про 3-4 раза было более пессимистично, чтобы не рождать лишние холивары.

                              Но Вы и тут умудрились родить полемику на пару десятков лишних комментов.

                              P.S. вся информация о производительности устройств — на правах кэпа. Пруфы легко находятся в вики, на сайтах производителей HDD или площадках с новостями о компьютерном железе (аля thg или overclockers)
                              • –4
                                Откопируйте всю википедию еще. См. выше: «Увидел вкусняшку интересненькую, поделился с хабром», не нравится — не пользуйтесь. Господину учителю на заметку, 1,5 Gb/sec это пропускная способность интерфейса, внутренняя шина может быть одна на всех, что прямым образом отразится на максимальной скорости передачи данных от конкретного диска. А девайсы, а это должно быть очевидно, рвут диски благодаря random access, что может оспорить только тупой тролль.
  • +4
    Клёво. А если бы ещё уменьшить размер образа и грузить его по сети, то в очень многих случаях это был бы отличный вариант и для пользователей, и для админов/поддержки, и для оптимизация расходов.
    • 0
      Я эксперементировал, система грузилась по iscsi (winxp) с miniitx с linux (жесткий диск был подключен к нему) в том же корпусе… жаль сервер был слабый, iscsi сильно требовательный к процессору на сервере, а AOE поднять мне не удалось (хотя драйвера для windows были), идею оставил на потом, но даже в условиях тормозного сервера отзывчивость системы была значительно выше чем запуск с того же жесткого диска (за счет кеширования на сервере и гигабитной сети).
  • +6
    Осталось дождаться PCI-E Ramdisk'ов (были такие для DDR2), с автономным питанием и не 4 слотами, а 8-16. Напихать 8х4 ГБ DDR3 1600 (благо она стоит копеек), ну и 32 гб уже вполне достаточно для системы и какого-нибудь фотошопа.
    • +1
      Ох как же я жду такие. Когда насмотрелся роликов на утубе про Gigabyte I-RAM хотел даже заказать, но повременил, а потом они на ebay стали редкостью…
    • 0
      8х4 ГБ DDR3 1600 обойдутся почти в 10К, так что не могу сказать, что это очень дешево. Оперативка уже полгода как подорожала, из самых недорогих и пристойных планок в Яндекс.Маркете Hynix 1600 4 GB стоит 1200 рублей. Да и сама карта для их сборки наверняка будет недешевым удовольствием. И при этом сейчас на рынке доступны PCIe SSD от 240 ГБ за 13К рублей.
    • 0
      Внезапно: IBM наоборот сделал флеши в разъем для оперативной памяти :)
  • +8
    Крайне неэкономный подход, оправданный только в том случае, когда Вам нужно, чтобы файлы гарантированно были доступными из RAM (в общем случае для файлового кеша такой гарантии, разумеется, нет).
    Вместе с тем, что в памяти будут теперь страницы, которые никогда больше не будут прочтены (просто за ненадобностью), часть страниц будет с дублированным контентом, ведь винда захочет самостоятельно прокешировать те файлы, что лежат на RAM-диске…

    Подход сравним с «а давайте сделаем ram-диск для файлов базы данных, и будем время от времени делать бекапы на диск» — пока памяти вагон — то все будет работать быстро, но ведь все и так будет работать быстро, если данные будут закешированы в памяти, причем в последнем случаее даже быстрее, т.к. будет исключено двойное кеширование и оверхед на копирование страниц в страницы.
    К примеру — я в rc.local держу строчку
    /usr/bin/tar -cf /dev/null /usr/local/pgsql
    которая поднимает скорость запуска и работы pgsql до уровня, как если бы этот раздел был на RAM-диске ))
    • 0
      Не поясните что эта строчка делает? Какая-та магия.
      • +3
        Как я понимаю — строчка копирует (архивирует) все содержимое pgsql в никуда. Файлы читаются, и при этом попадают в кэш, а в дальнейшем уже читаются оттуда.
        • 0
          Совершенно верно. ОС оставляет данные в файловом кеше, и последующие запросы на чтение отрабатываются мгновенно.

          Последовательное чтение файлов базы данных происходит гораздо быстрее (почти на полной скорости диска, в зависимости от уровня фрагментации, т.е. около 100МБ/c), чем если бы базе пришлось бы поднимать данные постранично для каждого запроса (в этом случае все упирается в IOPS, около 150 req/s для sata-дисков, итого 300 req/s для raid1). И хотя такое кеширование (разумеется, памяти на сервере должно быть больше, чем занимают файлы базы) требует некоторого времени — в итоге оно окажется гораздо меньше того времени, которое понадобилось бы постгресу на прогрев под нагрузкой.
          • +1
            А почему tar, а не банальный cat?
            • 0
              потому что нужно прочитать рекурсивно папку, а не один файл
              • 0
                Теперь понятно, я думал, что это именно файл.
        • 0
          tar -cf txt.tar *.txt
          

          Вот собсно, я так и прочитал: «архивируем ничего в постгрес» — Хм? Бессмыслица какая-та.
          Спасибо.
    • 0
      Все верно. Этот подход лучше рассматривать как эксперимент, или just for fun. «А вот так можно? Нууу… да, можно!»
  • –1
    Решение, конечно интересное, но вот так сделать не получится.
    Снимал сегодня для другого, но так уж совпало.

    p.s.
    мой коммент можно смело удалять, в конце статьи автор все расписал :)
    • 0
      У меня EFI дольше грузится на мамке (и BIOS PCI-E SSD-диска), чем у вас винда. :(
  • –3
    Просто купите samsung 840 pro на 256GB и не парьтесь ни о чем :D
  • +3
    Торт!

    Большое спасибо за прекрасную статью. Вставлю свои пять копеек.

     

    Способ решить проблему нехватки места на системном диске

    В свое время я столкнулся с проблемой нехватки места на системном диске когда, собирал для братишки игровой комп. SSD тогда были не особо быстрые и очень недолговечные, поэтому решил использовать SLC SSD, который не имеет этих недостатков, но зато имеет небольшой объем — денег хватило на 32 ГБ.

    С нехваткой места на системном диске справился, перенеся системные папки Users, Program Files и Program Data на жесткий диск прямо во время установки винды.

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

    aaalllen.tumblr.com/ssd

    Описанная в статье процедура выполняется во время чистой установки Windows 7. Результат совершенно прозрачен для дальнейшего использования. За несколько лет не слишком аккуратного использования, хозяин-школьник ничего не испортил и не заметил отличий (кроме прироста производительности).

     

    64 ГБ оперативки стали доступны для домашних компьютеров

    С другой стороны, стоимость 8-гигабайтного модуля памяти опустилась ниже 2000 рублей, а стоимость материнки с восемью слотами — ниже 7000 рублей (на сокете LGA2011). Таким образом, можно собрать систему с 64 ГБ оперативки за большие, но вовсе не безумные деньги. Тогда можно 16 ГБ оперативки оставить оперативкой, а 48 ГБ занять RAM-диском. А это уже вполне терпимый объем!

     

    PS Если при реальном использовании, а не синтетических тестах, разница в производительности между RAM-диском и современным SSD действительно незаметна, то овчинка выделки, конечно, не стоит. Но ручки все равно зачесались…
    • 0
      Закупать память специально для этого — думаю не стоит, дешевле купить SSD. А вот если уже память уже есть и простаивает, да еще и руки чешутся — можно и попробовать.
      Насчет тестов не знаю, не гонял (не в курсе, какой тест может замерить отзывчивость системы). Просто чаще стал замечать на работе кратковременные затыки, слышать хруст жесткого диска… дома-то отвык уже. А вот на SSD ощущения такие же — тоже все моментально и тихо.
    • –1
      Денег на планки с 64гб оперативки то можно наскрести, но вы учтите что вы говорите про интел, который всегда имел экономный взгляд на избыточную адресацию. Для поддержки >32гб нужны флагманские i7 или серверные ксеоны.
      • +4
        Под LGA2011 других процессоров просто нет.
      • +1
        Ээ, ну для 2011 сокета i5 не существует, емнип.
        P.S. Да, я опоздал :)
    • 0
      В топике 4Гб грузились 2 минуты, а Ваши 64 сколько будут грузиться? Хотя если комп держать постоянно включенным, то загрузка в 16-20 минут вполне терпима.
  • 0
    Ребят, почти в тему:
    Установил win8.1 на ssd c EFI, через сутки винт перестал определяться в bios. Подумал, что от старости — купил новый, аналогично. Что это может быть? Может оформить пост-предупреждалку?
    • 0
      У вас нет BIOS, у вас UEFI, и, вероятно, кривой реализации. Сделайте на винчестер GPT-разметку.
      • 0
        У меня asus dualbios. с gpt в режиме «UEFI» как раз и летели харды под win8.1, с mbr в режиме «bios» с win8 все нормально.
        В чем дело определить не смог, решил не экспериментировать с 3м хардом и вернулся на 8.0 и биос. Теперь боязно и новую винду ставить и gtp-разметку делать.
        Если подскажете в чем именно косяк, буду очень благодарен
        • 0
          А что значит «летели»? Вы уверены, что он именно перестал определяться, а не просто UEFI думает, что умнее вас, и не показывает HDD с не-GPT разметкой как доступный для загрузки в UEFI-режиме?
          • –1
            Вы меня не поняли. Под UEFI я форматирую винт в GPT. Ставлю Windows 8.1. Через 12-24 часов диски отваливаются, вылетает синий экран и больше их ни Bios ни UEFI не воспринимает. Даже если UEFI умнее меня, то биос однозначно должен показать все диски, что обнаружил (включая GPT). Виндовая утилита «diskpart» доступная из консоли установщика тоже его не видит и тоже должна.
  • 0
    Круто, а есть способ этот образ подгружать по сети?
  • 0
    А как же рубордовские образы, которые уже миллион лет как замечательно грузятся в память? :) Там даже vhd с жутчайшей экзотикой можно найти — типа win8 с включенными Aero и PAE
  • –1
    Могу также посоветовать поставить что-нибудь наподобие Primo Ramdisk, создать в памяти раздел, скажем, в 4 Гб и скинуть на него своп-файл. С дисков, соответсвенно, его удалить.
    Получаем бОльшую часть плюшек из статьи (в т.ч. мгновенный запуск приложений, которые попали в своп заметное снижение хруста HDD) и плюсы нормальной системы на обычном диске.
    Использую такой вариант уже пятый год, начинал еще на WinXP.
    Что интересно, своп системой активно используется даже когда в системе 16 Гб ОЗУ, так что тема актуальна даже сегодня.
    • 0
      Почему-то не верю, что реально используется системой при таких объемах памяти. Ну и если вся память не используется — как по мне логичнее своп просто отключить.
      • 0
        Еще как используется, особенно когда открывается много-много разного софта или в памяти 2-3 крупняка висит (вроде 2D- и 3D-редактора).
        А отключать своп нежелательно, т.к. «тяжелый» софт этого не любит и частенько вылетает, когда тот отключен.
    • 0
      Вы вообще в курсе что такое своп и как работает страничная адресация?
  • +2
    Меня бесит, что в W7/W8 все установщики программ (msi) теперь обязательно целиком сохраняются в \Windows\Installer\, и если их удалить — то установленную программу нельзя деинсталировать/обновить (только скачать заново дистрибъютив). Поставил Lightroom — 500mb исходного msi под хвост в Installer. Поставил Premiere — 1gb под хвост в Installer.
    То есть разработчики программ настолько отупели, что теперь не могут при обновлении/удалении делать это автономно без необходимости старого установщика.
    И это ужасно.

    p.s. у меня загрузка Windows 8 на HDD — 4 секунды включая Logon.
    • +1
      Это восстановление из гибернейта. Померяйте скорость перезагрузки.
      • 0
        Именно, Fast Boot. Секунды, а не 1-2 минуты как у автора.
    • 0
      Меня бесит, что в W7/W8 все установщики программ (msi) теперь обязательно целиком сохраняются в \Windows\Installer\

      Так было и в XP/Vista. Это особенность Windows Installer, отупели тут разве что разработчики Microsoft, у остальных просто не всегда есть право выбирать систему инсталляции. Но уж если есть выбор, почти все выбирают что-то культурное типа NSIS или Inno Setup.
    • 0
      Это не W7/W8, так было всегда :)
  • +2
    > Наши процессоры работают на многогигагерцовых частотах, гоняют электроны на релятивистских скоростях

    Только бы ваша фраза маркетологам из MS не попалась на глаза, а то будут объяснять медлительность компьютеров не сложностью архитектуры ПО, а именно тем, что «компьютер думает-то быстро, но его мысли-электроны столь быстры, что в его внутреннем мире проходит пикосекунда, а в мире снаружи — полчаса» ))
    • 0
      «многогига» — патентовать надо! ) хотя, по мне, 2-3 трудно назвать «много» )
  • +3
    При современном развитии скоростных жёстких дисков, в том чиле SSD и средств виртуализации такое решение практического смысла практически не имеет, ну разве что представляет собой просто неплохое упражнение. А вот лет двадцать назад подобное использование RAM диска было для меня реальным рабочим решением. Я около года работал на ДВК (аналог PDP-11), в который была вставлена вот такая плата, битком набитая микросхемами памяти то ли РУ5 то ли РУ7 — уже и не вспомню:

    image

    Это был RAM диск на 1 MB (один мегабайт), куда при старте с пятимегабайтного жёсткого диска переписывалась система RT11SJ, компилятор Си, линковщик, текстовый редактор, после чего компьютер грузился с этой штуки — и всё «летало». Особенно забавно было, что под нагрузкой (при компиляции или линковке) было хорошо слышно «шуршание электронов в микросхемах» (на самом деле видимо импульсный блок питания шумел из-за постоянно меняющейся нагрузки)

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