Статьи

Перенос дискового кеша интернет-браузера в ОЗУ в Linux

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

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

Чтобы найти программы, наиболее интенсивно использующие дисковое пространство, можно использовать утилиту iotop, которую можно установить из репозитория ubuntu командой

  sudo apt install iotop

Изучить интенсивность I/O-операций в Linux можно командой

  sudo iotop -oPa

Нужно запустить iotop, продолжить работу на компьютере в обычном режиме, а затем через некоторое время изучить информацию о дисковых операциях, собранную этой утилитой|:

В данном случае самую большую нагрузку на диск создает браузер firefox, а также (на два порядка меньше) процесс журналирования jbd2 и графический редактор gimp.

Чтобы снизить нагрузку на SSD (HDD), в Linux можно перенести кеш браузера на специально созданный быстродействующий RAM-диск с файловой системой tmpfs, либо перенаправить кеширование в каталог null (об этом можно почитать в статье «Оптимизация использования дискового кэша браузерами»).

Для создания RAM-диска в Linux можно использовать следующие команды:

sudo mkdir /tmp/ramdisk
sudo chmod 777 /tmp/ramdisk
sudo mount -t tmpfs -o size=4G myramdisk /tmp/ramdisk


где 4G — объем оперативной памяти, выделяемой под RAM-диск.

Проверить успешность создания и монтирования RAM-диска можно командой

      mount | tail -n 1
    

    Размонтировать временный диск в ОЗУ можно командой

      sudo umount /tmp/ramdisk/
    

    Определить, какой объем ОЗУ стоит выделять под нужды tmpfs-диска можно с помощью утилиты free. Она предоставляет информацию о количестве установленной (total), задействоанной (used), свободной (free), разделяемой между процессами (shared), буферной и кеш-памяти (buff/cache), доступной (available) памяти, а также о размере раздела подкачки (swap).

    Запуск утилиты free с ключом h командой

      free -h
    

    в операционной системе xubuntu 24.04 на компьютере с 16GB оперативной памяти:

    total        used        free      shared  buff/cache   available
    Mem: 15Gi 6.2Gi 7.4Gi 700Mi 2.9Gi 9.4Gi 
    Swap: 4.0Gi 0B 4.0Gi 

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

    Протестировать скорость записи RAM-диска в ubuntu можно командой

      sudo dd if=/dev/zero of=/tmp/ramdisk/zero bs=4k count=100000
    

    На компьютере с ОЗУ DDR4-типа, работающей на частоте 2666 MHz, скорость записи составляет 3.7 GB/s, что в разы больше любого SSD-накопителя:

    Скорость чтения из RAM раздела еще выше (в данном случае — 6.8 GB/s), она проверяется командой:

      sudo dd if=/tmp/ramdisk/zero of=/dev/null bs=4k count=100000
    

    Для автомонтирования RAM-диска при каждой загрузке системы нужно отредактировать файл fstab из каталога /etc/.

    Для этого запускаем редактор nano

      sudo nano /etc/fstab
    

    и вписываем в файл fstab строку

      myramdisk  /tmp/ramdisk  tmpfs  defaults,size=4G,x-gvfs-show  0  0
    

    Аргумент x-gvfs-show обеспечивает видимость RAM-диска в файловом менеджере.

    После сохранения и перезагрузки компьютера RAM-раздел появится в файловом менеджере:

    Чтобы смонтировать RAM-диск без перезагрузки PC, нужно выполнить команду

      systemctl daemon-reload
    

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

    Для Opera перенос кеша браузера на RAM-диск можно сделать с помощью создания символьной ссылки командой

      ln -s /tmp/ramdisk/ ~/.cache/opera
    

    Для Brave перенос кеша на RAM-раздел производится командой

      ln -s /tmp/ramdisk/ ~/.cache/BraveSoftware
    

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

      about:config
    

    согласиться с предупреждением Accept the Risk and Continue, нажать Show All, а затем изменить параметры следующих разделов:

    • browser.cache.disk.enable — установить в false:

    • browser.cache.memory.enable — true:

    Вместо этого можно использовать кеширование на RAM-диск. Для того используется раздел browser.cache.disk.parent_directory, где создается новая строка (String), в которой прописывается путь к RAM-диску, например:

    Чтобы уменьшить износ SSD-диска, можно перенаправить на RAM-раздел не только кеш браузеров, но и запись логов, других временных файлов, инсталяционных deb-пакетов и т. д:

    Для этого нужно прописать соответствующие команды в файл /etc/fstab, например:

    package_archive   /var/cache/apt/archives   tmpfs   defaults,size=4G   0   0
    systemd_journal /var/log/journal tmpfs defaults,size=4G 0 0 
    cache_thumbnails /cache/thumbnails tmpfs defaults,size=4G 0 0 

    Добавить комментарий

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