Создайте RAMDisk в вашем дистрибутиве Linux

Значок RAMDisk

Как вы знаете, скорость доступа к памяти очень важна. Узкие места, возникавшие в прошлом между магнитной памятью и процессорами, означали, что необходимо было включить более быструю буферную память, баран. Позже, с развитием микропроцессоров, появился кэш, даже быстрее, чтобы предложить буфер между ОЗУ и регистрами ЦП. Совсем недавно появились жесткие диски SSD, которые быстрее магнитно-механических жестких дисков, поскольку они основаны на флэш-памяти.

Компания Gigabyte несколько лет назад задумалась о создании жесткого диска с оперативной памятью. (RAMDisk, называемый i-RAM), очень быстрая память по сравнению с жесткими дисками, но нечто подобное случилось с Ageia с ее картой PhysX. Они действительно не образовались и в конечном итоге исчезли с рынка, а теперь с твердотельными накопителями (и твердотельными накопителями на основе оперативной памяти) это имеет еще меньше смысла. О чем это? Ну, в основном он использует оперативную память для хранения данных, как если бы это был жесткий диск, поэтому доступ намного быстрее.

Что ж, вам не нужна i-RAM, SSD или что-то в этом роде, чтобы ускорить передачу и доступ к нужным каталогам, файлам или программам. Для этого вы можете создать RAMDisk в вашем дистрибутиве Linux. Единственное требование - иметь достаточно оперативной памяти (рекомендуется> 4 ГБ), чтобы зарезервировать ее немного для использования в качестве сверхбыстрого «жесткого диска». Что-то вроде того, что делают некоторые графические процессоры для ноутбуков с общей памятью, но в данном случае для ваших данных.

Чтобы создать эту память, вы должны рассчитать имеющуюся у вас память, потому что, если вы исчерпаете ее всю или большую часть, у вас закончится оперативная память для целей, для которых она была создана, и это будет глупо. Например, если у вас 8 ГБ оперативной памяти, вы можете взять 2 ГБ для RAMDisk. Я повторяю, его идея в том, что у вас больше ОЗУ, если у вас 2 ГБ или 4 ГБ, это может не стоить ... (помните, что в "size =" укажите размер, в моем примере я выбрал 1024 МБ, то есть 1 ГБ, или вы также можете использовать «G» вместо «M», чтобы указать его в ГБ) Как только вы это узнаете, мы приступим к работе с следующие шаги с вашего терминала:

mkdir /tmp/ramdisk

mount -t tmpfs none /tmp/randisk -o size=1024M

Теперь в вашей оперативной памяти зарезервирован 1 ГБ, поэтому вы можете добавить все, что хотите, в созданный нами каталог ramdisk. Проведите тесты производительности, и вы увидите, как это быстрее все, что у вас есть ... Если вы хотите, вы можете создать раздел в вашей оперативной памяти с другой файловой системой, отличной от tmpfs, например ext4 или ramfs.

А если вы хотите, чтобы монтажный вход остался… Будьте осторожны !! Данные, которые вы сохраните здесь, если вы выключите компьютер или перезагрузите его, будут потеряны, но ввод останется.так что вам не нужно создавать раздел при каждом запуске с помощью следующего трюка, чтобы добавить его в таблицу разделов (fstab), чтобы он создавался автоматически (используйте свой любимый текстовый редактор для редактирования ввода: vi, nano, gedit ...):

gedit /etc/fstab

Y en el fichero de texto que se abre crea la siguiente entrada sin comillas "tmpfs /mnt/ramdisk tmpfs nodev, nosuid, noexec, nodiratime, size=1024M 0 0"

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


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

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Маврикий сказал

    У меня вопрос, после выключения оборудования данные останутся в памяти? Я говорю это, потому что оперативная память непостоянна. Я был бы признателен, если бы вы могли мне это объяснить.

    1.    Исаак ЧП сказал

      Привет,

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

      Ура и надеюсь, что помог. Спасибо!!!

      1.    Маврикий сказал

        Я заметил, что есть программы, которые делают этот раздел. Эти программы создают на жестком диске образ данных, находящихся в ОЗУ, чтобы при перезапуске они не были потеряны. Затем, когда система запускается, насколько я понимаю, данные, сохраненные на жестком диске, выгружаются в оперативную память, чтобы мы могли использовать их снова. Спасибо за записку и за быстрый ответ! Привет!

  2.   Леопольдо Кантильо сказал

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

  3.   Султанович сказал

    это может работать только с детализацией fs. В моих тестах это сработало только следующим образом:

    mount -t tmpfs tmpfs / tmp / ramdisk -o размер = 300 м

  4.   Исмаэль сказал

    Невероятные возможности, которые можно сделать с помощью GNU / LINUX. :)

  5.   Джимми Олано сказал

    Как насчет того, чтобы использовать RAMDisk для раздела «tmp»?

    Умея, мог, надо будет код поставить, код не прошу СПРАШИВАЮ О ПРАКТИЧНОСТИ ТЕМА, ДЛЯ ИСПОЛЬЗОВАНИЯ. Отмечу, что для баз данных, хотя я правильно помню, уже есть опция поддержки таблиц базы данных в ОЗУ, например: https: // dev.mysql.com/doc /refman/5.5/en/ storage-engine -setting.html

  6.   Anonymous сказал

    Если вам повезет и вы потащитесь за последние 20 лет, у вас будет 64 ГБ ОЗУ и, таким образом, вы сможете скопировать файл виртуального жесткого диска VirtualBOX (или любой другой виртуальной машины) в ОЗУ; Я предполагаю, что этот файл занимает не более 48 ГБ (чтобы оставить достаточно свободной оперативной памяти для Linux и виртуальной машины). Таким образом виртуальная машина летает, и если вы также хотите, чтобы изменения в виртуальной машине были потеряны (неизменяемость), вам больше не нужно будет терять производительность при создании неизменяемого виртуального жесткого диска машины, потому что перед его запуском вы копируете он из NVMe / SSD / HDD в ОЗУ, а затем отключение всего, что находится в ОЗУ, теряется (именно то, что желательно в этом случае, а именно неизменность).

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

    Когда вы закончите использовать виртуальную машину, вы хотите сохранить состояние виртуального жесткого диска, поскольку оно копируется из ОЗУ на NVMe / SSD / HDD.

    Я видел, что уже есть несколько NVMe, которые способны читать со скоростью чуть более 5 ГБ / с (да, пять гигабайт в секунду при чтении) и которые используют только один (в RAID0 или аналогичном будет еще быстрее) для копирования. преобразование образа виртуального жесткого диска 48 ГБ в ОЗУ занимает всего около десяти секунд, оле!
    Из минусов при выполнении противоположного процесса (из ОЗУ в NVMe) самые быстрые, которые я видел на данный момент, составляют немного больше, чем 3 ГБ / с при записи (да, три гигабайта в секунду при записи), поэтому сохранение образа виртуального жесткого диска 48 ГБ пересылка из ОЗУ в NVMe занимает всего около восемнадцати секунд, опять же огромная оле!

    У нас будет один из самых быстрых NVMe и 64 ГБ ОЗУ с Linux и виртуальная машина, например, с Windows 10, это вполне нормально, если ОЗУ используется для размещения жесткого диска виртуальной машины.

    А теперь подарок для Linux ... уже есть пакет под названием "ramroot" (по крайней мере, кажется, что для дистрибутивов на основе Arch), который во время загрузки отвечает за копирование всего корня системы Linux в ОЗУ и продолжение загрузки из ОЗУ, с которой мы также получаем неизменность в используемом нами Linux, не говоря уже о том, что он будет запускаться из ОЗУ, за счет некоторого увеличения времени загрузки.

    Если тот, кто это прочитает, знает, что дистрибутивы Linux загружаются с CD / USB, которые копируются в ОЗУ во время запуска (например, SystemRescueCD и т. Д.), Они будут знать о преимуществах, которые он дает: он всегда запускается одинаково, всегда работает так быстро, как может поскольку все находится в ОЗУ, на физические диски во время запуска или при использовании Linux ничего не записывается (что-то очень полезное для продления срока службы SSD, лично менее чем за месяц и с записанным менее терабайта, некоторые твердотельные накопители уже остались меня, чтобы работать, а именно 120 ГБ марки KingDian), за исключением случаев, когда мы монтируем что-то в режиме чтения и записи и сохраняем что-то там, объединяя это с виртуальной машиной, система `` летает '' при доступе к диску, поскольку все идут в ОЗУ.

    Наличие всего Linux в ОЗУ значительно продлевает срок службы SSD и NVMe, поскольку во время загрузки в них ничего или почти ничего не записывается, а когда-то запускается абсолютно ничего, если только это не делаем мы.

    Мои тесты проводились на Ryzen 7 2700X (4.35 ГГц с 8 ядрами и 16 потоками) с 64 ГБ DDR4 3200 МГц и 1050 ГБ NVidia 4 Ti Graphics.

    Примечание. Существуют материнские платы, поддерживающие даже 1 ТБ ОЗУ, и микрофоны с 64 потоками, такие как ThreadRipper 2 и т. Д.

  7.   Marcos сказал

    Ваш комментарий очень интересен, но мы не должны преувеличивать необходимую оперативную память: у меня есть образ VDI для Windows 10, который весит всего 13 ГБ, с 14 ГБ оперативной памяти он будет работать с полной легкостью.

    Я не очень понимаю, как монтировать всю ОС в ОЗУ, потому что это не слишком много. Если у вас есть SSD, отформатированный в BTRFS с включенным сжатием на лету (на диск записывается значительно меньше данных), поскольку при установке пакетов в системный раздел записываются почти только данные (что мы, очевидно, хотим оставить в SSD / диск), файлы конфигурации изменены (текстовые файлы незначительного размера, а сжатие LZO BTRFS оставляет их в еще более незначительном размере) и многое другое, потому что мне кажется, что он убивает мух выстрелами из пушки; имейте в виду, что все современные дистрибутивы motan / tmp в ОЗУ, если у пользователя больше 4 ГБ, я думаю об ОЗУ, поэтому SSD / диск не страдает наименьшим износом для многих временных операций, которые записываются, что было тем, что я использовал несколько лет назад положить больше трости в раздел /.

    Другое дело - дома, там постоянно пишутся данные: кеши, настройки, которые время от времени меняются, если мы переместили окно, загрузки и т. Д. Там может быть интересно работать только в ОЗУ и синхронизировать с диском, только если мы действительно этого хотим, хотя должен быть какой-то инструмент (не знаю, будет ли, не удивлюсь, но пока не прочитаю ваш комментарий, у меня есть не думал об этом), чтобы напомнить пользователю, когда он собирается закрыть сеанс, что в его / home есть изменения без сохранения, или даже спросить нас, хотим ли мы синхронизировать их с диском, потому что, конечно, половину времени мы бы забыли и выключите компьютер, чтобы через полсекунды помочь себе лидировать.

    «Существуют материнские платы, поддерживающие даже 1 ТБ ОЗУ, и микрофоны с 64 потоками, такие как ThreadRipper 2 и т. Д.»

    Уже и стойки, которые еще поддерживают гораздо больше, но не отпускают нас xD. Вернемся на планету Земля, где люди вряд ли могут позволить себе команду за 800 евро ...

    Привет.

  8.   Marcos сказал

    «У меня есть VDI-образ Windows 10, который весит всего 13 ГБ, с 14 ГБ ОЗУ он будет работать с полной легкостью».
    Извините, я имел ввиду 24 ГБ. Мой палец перешел к следующей клавише?