Как создать диск Ramdisk в Linux

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

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

В Linux ramdisk можно создать с помощью команды mount и файловых систем tmpfs и ramfs. В этом руководстве показано, как создать ramdisk в Linux, используя обе эти системы.

Tmpfs и Ramfs

Tmpfs: Tmpfs - это временная файловая система, хранящаяся в памяти RAM (и/или памяти подкачки). Указав эту файловую систему в аргументе -t команды mount, вы можете выделить ограниченные ресурсы памяти для временной файловой системы. В результате приложения, хранящиеся в этой файловой системе, будут работать в несколько раз быстрее, чем на обычных устройствах хранения данных, включая устройства cssd.

Ramfs: Ramfs похожа на Tmpfs, но пользователь не может обеспечить лимит, а выделенный ресурс растет динамически. Если пользователь не контролирует потребление ramfs, ramfs будет продолжать использовать всю память до зависания или краха системы.

Tmpfs против Ramfs: Нет заметной разницы между производительностью tmpfs и его предшественника ramfs. Причиной замены ramfs на tmpfs является риск неограниченного потребления оперативной памяти ramfs, что может привести к краху системы.

Еще одним преимуществом tmpfs перед ramfs является возможность использования пространства подкачки, в то время как ramfs ограничена аппаратной памятью.

Как создать Ramdisk в Linux с помощью Tmpfs

Во-первых, давайте посмотрим, сколько свободной памяти мы можем использовать перед созданием точки монтирования tmpfs. Чтобы проверить доступную память ram и swap, вы можете использовать команду free. Чтобы вывести результаты в гигабайтах, можно добавить аргумент --giga, как показано в примере ниже:

free --giga

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

Теперь создайте точку монтирования в каталоге /mnt с помощью команды mkdir, как показано в примере ниже. Выбор имени точки монтирования произволен. Если вы собираетесь использовать ramdisk для определенного приложения, вы можете назвать точку монтирования в честь него. В приведенном ниже примере я назвал ее /mnt/tmp:

Теперь вы можете создать ramdisk с помощью команды mount. В следующем примере показано, как создать ramdisk с помощью tmpfs на 2GB Ram/Swap, в точке монтирования /mnt/tmp.

Аргумент -t (тип) позволяет указать файловую систему (в данном случае tmpfs). Аргумент -o (options) используется для определения места для ramdisk.

Диск ramdisk был создан в каталоге /mnt/tmp.

HDD против Tmpfs

Я скопировал образ CentOS из домашнего каталога пользователя, используя команду time для отображения времени, можно увидеть, что процесс копирования занял 0:10.721с

Копирование файла на HDD

На следующем снимке экрана видно, что копирование того же образа Ubuntu iso на диск ramdisk заняло 0:0.899с:

Копирование файла в Tmpfs

Как видите, разница титаническая, и ramdisk очень выгоден для задач с большим объемом записи файлов.

Чтобы удалить ramdisk, просто отмонтируйте его, выполнив следующую команду и заменив tmp на точку монтирования:

Создание диска Ramdisk в Linux с помощью Ramfs

Процедура создания диска ramdisk с помощью ramfs такая же, как и в случае с tmpfs. Следующая команда создаст динамический ramdisk в точке монтирования /mnt/tmp.

Tmpfs против Ramfs

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

В первом примере я создам ramdisk размером 2 ГБ с помощью tmpfs и попытаюсь скопировать на него iso большего размера:

Ошибка записи в tmpfs

Как вы можете видеть, cp выдал ошибку, потому что места на диске ramdisk недостаточно для образа iso. Я выделил только 2 ГБ для ramdisk.

Теперь посмотрим, что произойдет, если я проделаю ту же процедуру, используя ramdisk:

Запись большого файла в ramdisk

Как вы можете видеть, ramfs продолжает записывать в /mnt/tmp, несмотря на то, что я установил ограничение в 2 ГБ. Это недостаток ramfs, так как он может повесить систему, потребляя всю ее RAM память. Напротив, tmpfs ограничена объемом памяти, который мы определяем.

В выводе также видно, что задача копирования была выполнена за 0:9.624 с, что почти соответствует производительности tmpfs в тесте против SSD.

Заключение

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

Использование ramfs может быть рискованным, если в системе закончатся ресурсы.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий