Развеиваем мифы: Файл подкачки на RAM-диске
17 Сентября 2016

Ramdisk для ускорение компьютераНесмотря на повсеместное распространение SSD накопителей, а также благодаря дешевизне модулей памяти, идея RAM-диска в некоторых случаях не потеряла актуальности - виртуальному диску, расположенному в оперативной памяти компьютера и обеспечивающему феноменальные скорости чтения и сегодня найдется применение. Однако не всегда использование данной технологии рационально, и в данной статье я расскажу о самом нелепом применении RAM-диска, которое мне приходилось встречать, – расположении на нем файла подкачки.

Задумайтесь, мы сознательно уменьшаем память компьютера для размещения в ней рамдиска с подкачкой, которая нужна, при малом (недостаточном) количестве памяти. Замкнутый круг.

Статья: Ramdisk – виртуальный диск для ускорения работы компьютера 

Теперь расскажу более подробно с картинками. Весь доступный для использования ресурс памяти компьютера условно состоит из двух частей – физической памяти, то есть модулей, установленных на материнской плате, и файла подкачки (Свопа – от англ. Swap-file), который используется при нехватке физической памяти.

Такой механизм защищает систему от истощения ресурсов. Сбрасывая временно неиспользуемые программы и библиотеки в swap-файл на жестком диске, освобождается место для новых приложений. Операционка будет работать медленнее, но не заглючит и не зависнет.

Ресурс памяти
Подкачка расширяет возможности физических модулей

Вот как выглядит ресурс памяти при создании в ней RAM-диска. Часть физической (именно ценной физической) памяти отрезается и отдается под накопитель, который виден в системе как обычный диск. Соответственно, размер диска не может быть больше размеров оперативной памяти. Такой виртуальный «винчестер» имеет высочайшую производительность, на порядок (а то и больше) обгоняющую даже SSD. Но размер памяти уменьшен, а значит, часть программ, которым не хватило места, будут отправлены в файл подкачки.

Расположение рамдиска в памяти
Расположение рамдиска в памяти. Общий ресурс уменьшился, теперь он не превышает размера физической памяти.

Теперь посмотрите на особенности распределения памяти при расположении Свопа на RAM-диске. Во-первых, суммарный размер свободной памяти и Swap-файла не может быть больше физической памяти компьютера, что убивает вообще всякий смысл подкачки, направленной на расширение лимита физической памяти. Во-вторых, операционная система достаточно гибко умеет распределять свои ресурсы. Ограничивая систему виртуальным диском, мы не даем полного контроля над памятью.

Отключение рамдиска
Сравните с предыдущей картинкой. Суммарный ресурс тот же, но теперь система эффективно решает, как использовать память, например под файловый кэш.

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

Пример. В компьютере 6 Гбайт оперативной памяти и 2 Гбайт в подкачке на жестком диске. Суммарно под систему и программы выделено 8 Гбайт. Файловый кэш может быть выделен только в пределах физических 6-ти Гбайт. Теперь мы хотим избавиться от дисковой подкачки на винчестере и перенести ее на RAM-диск. Создаем виртуальный диск, равный по размеру Свопа.

Итого получается: 4 Гбайт свободной памяти + 2 Гбайт под Swap-файл. Суммарный размер под систему и программы – 6 Гбайт. Только теперь кэш может быть выделен в пределах 4 Гбайт (а не 6-ти, как ранее). Если хочется избавиться от дисковой подкачки, например, при наличии большого количества памяти, то проще вообще отключить Своп.

Применительно к нашему примеру, весь выделенный ресурс будет состоять только из физической памяти размером 6 Гбайт, которая выделена под систему и программы. То есть, по сравнению с предыдущим случаем (подкачки на виртуальном носителе) мы ничего не теряем, плюс система имеет возможность более эффективно использовать ресурсы.

Расширение памяти вместо подкачки
Если если хочется ускорить систему, поставьте больше памяти,
а не занимайтесь ерундой с переносом подкачки на рамдиск.

Поэтому не используйте файл подкачки на RAM-диске, это верхняя степень идиотизма, идущая от полного непонимания того, как работает операционная система.

Получайте анонсы новых статей прямо на почту

 

Комментарии 

Коммент от
Сен 19, 2016
Комментатор
eman
"Это верхняя степень идиотизма, идущая от полного непонимания того, как работает операционная система."
Какая OS?
Вы о zRAM слышали? RAM-диск с компрессией. https://ru.wikipedia.org/wiki/ZRam
Коммент от
Сен 19, 2016
Комментатор
pc-hard.ru
Речь о Windows.
Что касается zRam, то выигрыш будет лишь при стратегии принудительного использования подкачки при большом кол-ве свободной физической памяти. Такой подход встречается довольно редко. Можете сами убедиться, free -m вам с помощь. Попробуйте забить оперативку до максимума и посмотрите размер подкачки. Так что проект, хоть и существует, но используется только для ряда весьма специфических задач.
Коммент от
Ноя 11, 2016
Комментатор
Алексей
Я вынужден использовать 32-битную систему при том, что имеются 8 ГБ памяти.
Причина: плата управления станком ЧПУ, на которую в природе существуют только 32-битные драйвера.
Думаю, что в данном случае размещение в верхних 4 ГБ памяти рамдиска с файлом подкачки - хорошее решение (правда, ещё не пробовал своими руками)
Коммент от
Ноя 11, 2016
Комментатор
pc-hard.ru
Такое использование разумно. Некая попытка хоть как-то задействовать "потерянную память". Но это все же костыль для преодоления ограничений старых драйверов. Тем более рам-диск, умеющий сам управлять памятью в недоступных системе областях, нужно еще поискать и потестировать.

Оставить комментарий

Защитный код
Обновить