В этом уроке вы узнаете, как легко создать RAM-диск на любом дистрибутиве Linux (Debian, Ubuntu, Fedora, Arch Linux, CentOS и других). В отличие от платных решений для создания RAM-дисков в Windows, Linux предоставляет такую возможность совершенно бесплатно.
Содержание статьи
- 1 RAM-диск — это виртуальный диск, который создаётся в оперативной памяти компьютера. Он работает аналогично жёсткому диску или SSD, но благодаря использованию оперативной памяти обеспечивает гораздо более высокую скорость работы.
- 2 Почему стоит применять RAM-диск?
- 3 Создание RAM-диска в любом дистрибутиве Linux.
- 4 Проверка производительности оперативного RAM-диска.
- 5 Автоматическое подключение при старте системы.
- 6 Применение RAM-диска для снижения износа SSD.
- 7 Как запустить виртуальную машину VirtualBox с использованием RAM-диска
- 8 Запуск системы Linux в оперативной памяти без использования VirtualBox.
- 9 Итоговый анализ
RAM-диск — это виртуальный диск, который создаётся в оперативной памяти компьютера. Он работает аналогично жёсткому диску или SSD, но благодаря использованию оперативной памяти обеспечивает гораздо более высокую скорость работы.
RAM-диск, или RAM-драйв, представляет собой сегмент оперативной памяти (RAM), который форматируется под файловую систему. Его можно подключить к каталогу в Linux и использовать как диск.
Почему стоит применять RAM-диск?
Оперативная память работает намного быстрее даже самых скоростных SSD. Как известно, основным ограничением производительности современных компьютеров является скорость жесткого диска, поэтому копирование программ и файлов на RAM-диск обеспечивает очень быстрый пользовательский опыт.
Преимущества использования RAM-диска включают быструю скорость доступа к данным, что обеспечивает высокую производительность приложений. Кроме того, RAM-диск позволяет сократить время загрузки системы и улучшить общую отзывчивость веб-сайтов.
- Ультрабыстрая скорость
- Способен выдерживать множество повторных циклов чтения и записи
Ограничения у RAM-диска:
- Оперативная память (RAM) относится к энергонезависимой памяти, что подразумевает утрату всех данных на RAM-диске при выключении или перезагрузке компьютера. Тем не менее, в определённых обстоятельствах это может оказаться полезным, если подходить к её использованию разумно.
- Поскольку RAM имеет высокую стоимость, ее объем обычно ограничен. Важно следить за тем, чтобы не выделять избыточное пространство для RAM-диска, иначе это может привести к нехватке оперативной памяти для операционной системы.
С RAM-диском открываются широкие возможности для выполнения различных увлекательных задач.
- RAM-диск идеально подходит для хранения временных данных или кэширования папок, например, для кэша FastCGI в Nginx или архивов загруженных пакетов Debian (/var/cache/apt/archive/). Если у вас есть SSD и вы часто выполняете операции записи в определенную директорию, вы можете примонтировать её как RAM-диск, что поможет снизить износ SSD.
- Я также применяю RAM-диск для временного сохранения скриншотов, когда пишу статьи для этого блога, чтобы они автоматически удалялись при выключении компьютера.
- Вы, возможно, удивитесь, но я применяю RAM-диск для работы с виртуальными машинами в VirtualBox. Мой SSD имеет емкость около 250 ГБ, и мне не хватает его для запуска множества виртуальных машин. Кроме того, скорость моего механического жесткого диска на 2 ТБ (HDD) меня не устраивает. Я перемещаю виртуальные машины с HDD на RAM-диск перед их запуском, чтобы повысить скорость работы. После завершения работы виртуальной машины я быстро возвращаю файлы обратно на HDD, что занимает меньше одной минуты. Конечно, для этого требуется достаточно большой объем оперативной памяти.
Создание RAM-диска в любом дистрибутиве Linux.
Сначала нужно создать папку, которая может располагаться в любом месте файловой системы, например:
sudo mkdir /tmp/ramdisk
Чтобы предоставить всем пользователям вашей системы Linux возможность использовать RAM-диск, установите права доступа к каталогу на 777.
sudo chmod 777 /tmp/ramdisk
После этого убедитесь, сколько свободной оперативной памяти доступно в вашей системе, используя утилиту командной строки htop, поскольку нам не следует превышать лимиты использования оперативной памяти.
htop

После этого нужно лишь выбрать тип файловой системы, указать размер RAM-диска, задать имя устройства и смонтировать его в нужную директорию. На приведенном выше скриншоте видно, что у меня достаточно свободной оперативной памяти, поэтому я могу без труда выделить 1 ГБ для RAM-диска. Это можно выполнить с помощью следующей однострочной команды. Для этого будет использована файловая система tmpfs, а её размер установлен на 1024 МБ. Я назвал устройство myramdisk.
sudo mount - t tmpfs - o size=1024m myramdisk /tmp/ramdisk
Для создания RAM-диска объемом 10 ГБ используйте следующую команду.
sudo mount - t tmpfs - o size=10G myramdisk /tmp/ramdisk
В случае, если мы осуществим следующую инструкцию
mount | tail - n 1
Мы наблюдаем, что диск был успешно подключен.
Если я перемещу файл своей виртуальной машины VirtualBox (5.8 ГБ) на RAM-диск, потребление оперативной памяти неожиданно увеличится до 9.22 ГБ.
Если я отключу RAM-диск,
sudo umount /tmp/ramdisk/
Вся информация в этой папке будет удалена, а использование оперативной памяти вернется к своему первоначальному уровню.
Вот способы, как можно убедиться в работоспособности вашего RAM-диска.
Проверка производительности оперативного RAM-диска.
Для проверки скорости записи на RAM-диск можно воспользоваться утилитой dd.
sudo dd if=/dev/zero of=/tmp/ramdisk/zero bs=4k count=100000
Это позволило достичь скорости записи в 2.8 ГБ/с.
Для проверки скорости чтения выполните следующие действия:
sudo dd if=/tmp/ramdisk/zero of=/dev/null bs=4k count=100000
Это обеспечило мне скорость чтения в 3,1 ГБ/с.
Я также проверил скорость своего SSD. Скорость записи оказалась 534 МБ/с, а скорость чтения — 1.6 ГБ/с.
Автоматическое подключение при старте системы.
Внесите изменения в файл /etc/fstab.
sudo nano /etc/fstab
Пожалуйста, внесите эту строку:
myramdisk /tmp/ramdisk tmpfs defaults, size=1G, x-gvfs-show 0 0
Команда x-gvfs-show поможет вам отобразить RAM-диск в вашем файловом менеджере. Сохраните изменения и закройте файл. Ваша Linux-система автоматически подключит RAM-диск при старте компьютера.
Для немедленного применения изменений без перезагрузки выполните следующую команду.
sudo mount - a
Применение RAM-диска для снижения износа SSD.
Для продления срока службы вашего SSD рекомендуется минимизировать операции записи и удаления. В операционной системе Linux выделяются два основных типа активности, которые в значительной степени способствуют этим операциям.
- Инсталляция и модернизация программных приложений.
- Заполнение журналов
В дистрибутивах Linux, основанных на Debian, временная папка для загрузки пакетов программного обеспечения располагается по адресу /var/cache/apt/archives/. После завершения установки пакета, менеджер пакетов APT автоматически убирает файлы. deb из этой папки. Чтобы смонтировать эту директорию в оперативную память, вы можете добавить следующую строку в файл /etc/fstab.
package_archive /var/cache/apt/archives tmpfs defaults, size=6G 0 0
Fedora хранит временные файлы загрузки пакетов в папке /var/cache/dnf/. Вы можете добавить следующую строку в файл /etc/fstab, чтобы подключить эту папку к оперативной памяти.
package_archive /var/cache/dnf tmpfs defaults, size=6G 0 0
Некоторые могут задуматься, не вызовет ли монтирование данной директории проблем при обновлении Fedora до новой версии, ведь для установки пакетов обновления требуется перезагрузка. Но на это есть ответ — нет, монтирование не повлияет на процесс обновления системы. Fedora хранит пакеты для обновления в отдельной директории: /var/lib/dnf/system-upgrade/.
В Linux директория, где хранятся журналы, обычно располагается по пути /var/log/. Монтирование всей директории /var/log/ в оперативную память считается небезопасным. Перейдите в указанную директорию.
cd /var/log/
Проверьте, соответствует ли её размер.
sudo du - h
Поддиректория /var/log/journal/ может занимать значительное пространство на диске, так как она хранит журналы сервисов systemd. Её можно безопасно перенести в оперативную память, добавив соответствующую строку в файл /etc/fstab.
systemd_journal /var/log/journal tmpfs defaults, size=6G 0 0
Если вы работаете с веб-сервером Nginx, вам может быть полезно переместить каталог /var/log/nginx/ в оперативную память. На одном из моих серверов этот каталог занимает 2,2 ГБ.
nginx_logs /var/log/nginx/ tmpfs defaults, size=6G 0 0
После того как файл /etc/fstab будет сохранен, выполните команду для монтирования всех файловых систем.
sudo mount - a
Как запустить виртуальную машину VirtualBox с использованием RAM-диска
Учтите, что для этого потребуется значительное количество оперативной памяти.
При создании новой виртуальной машины необходимо задать папку машины в каталоге RAM-диска ( /tmp/ramdisk/ ). Если опция «Папка машины» недоступна, потребуется установить последнюю версию Virtualbox на вашу систему.

Если у вас есть существующая виртуальная машина, выберите её в главном окне VirtualBox Manager и перейдите в меню, выбрав Машина ->Переместите виртуальную машину, либо кликните по ней правой кнопкой мыши и в контекстном меню выберите пункт «Переместить». После этого вам предложат указать новую папку для хранения виртуальной машины. Выберите /tmp/ramdisk/ в качестве новой директории.

Перед выключением компьютера не забудьте вернуть вашу виртуальную машину в исходную папку, иначе она будет удалена.
Запуск системы Linux в оперативной памяти без использования VirtualBox.
Живой USB-накопитель с Linux обладает полезной функцией под названием toram, которая загружает всю файловую систему в оперативную память. Это значительно ускоряет работу операционной системы, так как она функционирует в RAM.
Для формирования Linux Live USB я советую воспользоваться приложением systemback, поскольку оно позволяет создать live-систему на основе вашей текущей установки Linux. Вы сможете включить все установленные программы и личные файлы в создаваемый live USB.
Итоговый анализ
Это основные аспекты настройки RAM-диска в Linux. Если вам понравилась эта информация, не забудьте подписаться на нашу бесплатную рассылку, следить за нами в Twitter или поставить лайк на нашей странице в Facebook. Благодарим за ваш визит!

