Текущий ритм жизни большинства людей очень насыщен. Мы пользуемся различными технологиями, устройствами и программами каждый день. Неотъемлемой частью нашего быта, служащим порталом в мир технологий и обменом большим объемом информации - являются наши любимые персональные компьютеры или ноутбуки. И на протяжении всего времени, что они существуют, пользователей всегда и во все времена интересовал важнейший вопрос: а можно ли сделать систему (или какую-то ее часть) еще быстрее?

Данная статья публикуется с целью популяризации технологии RamDisk на современных компьютерах, позволяющей значительно ускорить определённые программы или сценарии использования, за счет переноса процессов кеширования или хранения информации (или просто операций с данными) с основного носителя на RamDisk. Диск, который создается программно, и использует выделенную часть оперативной памяти для хранения информации.

В материале также будет рассмотрен частный случай такого подхода для MacOS. Однако, принцип использования данной технологии ничем не отличается и на других системах, разве что процесс создания и конфигурирования будет отличаться.

Первое, с чего стоит начать: на компьютере должно быть много оперативной памяти. "Много", для каждого свое, в виду различных особенностей использования и назначения. Но чтобы сориентироваться, достаточно понимать следующее: какой объем оперативной памяти вы готовы отдать под хранение файловых данных?

Можно использовать RamDisk для хранения на нем кеша, например, браузерного: Google Chrome/Firefox/Opera/Safari. Здесь хватит и нескольких сотен мегабайт (на какое-то время).

Или отдать пару гигабайт под Photoshop, Lightroom или другие программы для работы с графикой или изображениями. Вы, возможно, удивитесь, сколько кеша пишется при редактировании всего лишь одного 30-мегапиксельного RAW-изображения в 16-bit.

Можно использовать RamDisk под фильмы/сериалы. Очень удобно, когда качаешь какой-нибудь фильмец на 8 гигов или сезон сериала на 20, а все пишется в оперативную память и никак не трогает SSD. (А ведь бывают случаи, когда места на диске нет, а в RAM есть).

Или же RamDisk можно использовать под любые другие задачи, которые не чувствительны к потере данных. Да-да, именно к потере. Потому что все данные, как уже было сказано, хранятся в оперативной памяти, а она - энергозависимая. Если произойдёт выключение ОС или размонитрование такого диска, то все данные потеряются. Хотя кто-то может увидеть в этом повышенную приватность (ведь файл(ы) никак не восстановить). Выводы по сценариям применения дальше сделает каждый для себя сам.

И вот вы готовы "пожертвовать" какое-то количество имеющейся драгоценной RAM. Для чего, собственно? А вот для чего:

Бенчи здесь:
Тест SSD диска
Тест SSD диска
Тест RamDisk'a
Тест RamDisk'a

Моей основной машиной является MacBook Pro 18-го года с распаянным SSD на 512GB и 32 GB RAM (2400MHz DDR4). И выше как раз приведены два бенчмарка по скорости записи/чтения файла размером 5GB сперва на SSD, затем на RamDisk. Согласитесь, разница в 3 и 2,5 раза более чем существенная :) В зависимости от системы, разница может быть как больше, так и меньше.

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

Например, вы неплохо так высвободите занятость диска от Google Chrome, который постоянно производит операции чтения/записи кеша. В день это могут быть сотни мегабайт. А RamDisk снимет нагрузку с основного диска, ускорит эти операции для Хрома в разы и попутно продлит жизнь для SSD. Бонусом появляется возможность сбросить кеш простым пересозданием диска. Для остальных программ эффект очень схожий.

Как же реализовать сей чудесный потенциал? Для этого необходимо две вещи:

  1. Инструмент создания RamDisk'ов

  2. Изменить настройки ПО, чтобы кеш или файлы писались именно на него.

Создание RamDisk'a на MacOS:

Для MacOS есть два популярных варианта создания:

  1. При помощи команды в терминале (не забудьте указать sizeInMB и ввести результат итогового умножения):

diskutil partitionDisk $(hdiutil attach -nomount ram://2048*sizeInMB) 1 GPTFormat APFS 'RamDisk' '100%'
  1. При помощи программки iRamDisk (ссылка будет в конце статьи)

Стандартный интерфейс программы iRamDisk
Стандартный интерфейс программы iRamDisk
Возможность автоматически при старте системы создавать диск под кеш в Google Chrome (или Firefox)
Возможность автоматически при старте системы создавать диск под кеш в Google Chrome (или Firefox)

Диски в этой программе создаются элементарно, путем нажатия на "+" в левом нижнем углу. Далее, необходимо выбрать тип диска: есть возможность использовать под конкретный браузер (диск создается по существующему пути папки для кеша) или дефолтный режим под общедоступное хранение данных. Также можно настроить автосоздание при старте системы.

Для всех программ RamDisk не будет ничем отличаться от обычной папки. Вы смело можете указать путь и название диска, полностью соответствующий кеш-папке вашей программы (диск просто ее заменит). Или, наоборот, в настройках ПО указать новый путь для временных файлов.

Например, вот так выглядит добавления торрент файла для скачивания Ubuntu на дефолтный RamDisk.

*Не забывайте при использовании подобного ПО и расчете того объема памяти, которое вы выделяете под RamDisk, держать в уме, что у вас должно быть достаточно оперативки для других программ вашей системы.

Как бы заключение

Надеюсь, что кто-то найдет эту статью новой для себя и полезной для своих задач. На этом все. Всем быстрых систем и живучих SSD :)

Ссылка на .dmg программы iRamDisk 3.6.15: https://disk.yandex.ru/d/cC4Rds5wV4Jf7A

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


  1. Ztare
    24.08.2022 21:01
    +1

    Наблюдаю противоречие. Может раз оперативка казеная, то не стоит кружным путем в ней кешировать. А наоборот настроить кеширование в браузере в оперативку с большим лимитом по объему и времени, а также полное отключение кеша на диске?


  1. Babyrossik
    24.08.2022 21:07

    Актуально ли для маком на М1/М2?


    1. vlad_gatsenko Автор
      24.08.2022 21:08

      Честно, не проверял. Но должно. Все создается типовыми консольными командами (на уровне ОС), должно работать без проблем. Сама утилитка только будет запускаться через Rosetta 2, так как не оптимизирована (и не будет) под arm.


      1. MechanicusJr
        24.08.2022 21:38
        -1

        Все создается типовыми консольными командами (на уровне ОС),

        Уровень ОС это что?


  1. MechanicusJr
    24.08.2022 21:17

    все пишется в оперативную память и никак не трогает SSD .. и попутно продлит жизнь для SSD. .. Можно использовать RamDisk под фильмы/сериалы. Очень удобно, когда качаешь какой-нибудь фильмец на 8 гигов или сезон сериала на 20, а все пишется в оперативную память и никак не трогает SSD

    Опять прорыв инферно из песочницы 2013 года?


    1. mpa4b
      24.08.2022 21:24
      +1

      Тем не менее, рамдиск всё же как минимум на порядок быстрее SSD.


      1. MechanicusJr
        24.08.2022 21:30
        +1

        Тем не менее, рамдиск всё же как минимум на порядок быстрее SSD.

        Порядок это в два раза или в десять?

        но сравним

        DDR4 2133 - 17 GB/s 2400 - 19.2 GB/s

        супротив (не совсем SSD конечно, но все равно постоянная память): The P5800X delivers up to 7.2 GBps of sequential bandwidth (точнее 7.2 R /6.2 GBps W ) - https://www.tomshardware.com/reviews/intel-optane-ssd-dc-p5800x-review

        Конечно in memory дает больше попугаев, но и риски выше


        1. vlad_gatsenko Автор
          24.08.2022 21:36

          Грядущие ssd на PCIe 5.0, смогут и быстрее)

          Или собрать пару ssd современных в raid 0, получится что-то похожее.

          Опять же, в зависимости от системы прирост и сценарии применения решения на ram могут быть разными, каждый смотрит, пробует и решает для себя сам.

          Вариант просто имеет место быть)


          1. MechanicusJr
            24.08.2022 21:47

            Я вижу только один сценарий - показать разработчикам (например, 1с) что быстрее от более быстрого диска - не будет. стенды, тесты.


  1. sden77
    24.08.2022 21:20
    +1

    Рамдиск надо использовать грамотно, например можно заставить его использовать приложение, которое постоянно что-то пишет во временные файлы. Запись в рамдиск фильмов выглядит достаточно сомнительной идеей.


  1. mpa4b
    24.08.2022 21:20
    +1

    Всегда, читая такие статьи -- улыбаюсь. В дружественных ОС рамдиск создаётся 1 строчкой в /etc/fstab и уже наверное десятилетие с лишним воспринимается как само собой разумеющаяся штука.

    А пользователи MасОS и Windоws продолжают читать и писать такие вот статьи.


    1. MechanicusJr
      24.08.2022 21:33
      -1

      А пользователи MасОS и Windоws продолжают читать и писать такие вот статьи.

      Пользователи Windows втыкают nvme Gen 4 ( 5000 MB/s Seq. ) и не жужжат

      upd. Или открывают документацию на главе memory-optimized tempdb metadata

      upd2 я вижу в ком-то зависть к пользователям Windows, это хорошо!


  1. ShadowMaster
    24.08.2022 21:48

    Где результаты тестирования браузера с рамдиском и на простом SSD? А открою маленький секрет - разницы не будет. Кстати, у нормальных браузеров кэш на диске отключается.

    Линейная скорость чтения/записи вообще мало что значит.

    Остальные применения притянуты за уши. Какой смысл экономить ресурс SSD, если у флеш-памяти ресурс на 50-100 лет нормального использования. Скорее контроллер помрёт.

    Под фотошоп может еще и есть какой-то смысл. Но где результаты тестирования?