Ни для кого не секрет что операции записи и чтения из оперативной памяти работают в несколько раз быстрее чем с жесткого диска. Недавно я заметил что популярный браузер от Google, активно пишет файлы в директории .cache и .config во время работы. А что если перенести эти каталоги в оперативную память и сохранять данные на диск только при выключении компьютера…
Как вы уже поняли в этой инструкции мы заставим Chromium писать свои файлы непосредственно в оперативную память, это ускорит его работу и как бонус уменьшит использование жесткого диска, тем самым увеличив строк его службы.
Мы рассмотрим как сделать это с помощью специального демона, где нужно будет всего лишь установить одну программу и подправить несколько строк в конфиге. А также посмотрим как сделать все вручную средствами системы без дополнительных программ. Мне лично больше нравится второй вариант, он как бы дает больше контроля над системой и понимания того что происходит. Для экономии расхода оперативной памяти будем использовать модуль ядра zram. Как его настроить посмотрите в предыдущей статье, дальше я буду предполагать что модуль уже настроен и готов к работе. И так, приступим, начну пожалуй со второго способа.
Ускорение Chromium вручную
Сначала подготовим устройство zram, допустим будем использовать zram0. Нам нужна будет файловая система ext4.
mkfs -t ext4 /dev/zram0
Создаем папку для подключения виртуального устройства:
mkdir ~/.tmp
Подключаем:
sudo mount /dev/zram0 ~/tmp
Это все нужно будет приспособить к вашему способу запуска zram. Например автомонтирование можно выполнить через fstab:
продолжаем настройку, создадим папки для cache и config:
mkdir ~/.tmp{.cache, .config}
С помощью символических ссылок перенаправляем туда кэш браузера:
ln -s ~/.config/chromium ~/.tmp/config
$ ln -s ~/.cache/chromium ~/.tmp/cache
Кэш он для того и существует чтобы меньше использовать интернет соединение, поэтому данные нужно как-то сохранять между перезагрузками. Для этого воспользуемся скриптами. Для развертывания:
/bin/bash
cd /home/user/.tmp
rm -Rf ~/.tmp/*
tar cpf ~/.ramdisk.tar
И для сохранения состояния:
/bin/bash
cd /home/user/.tmp
rm ~/.ramdisk.tar
tar xf ~/.ramdisk.tar
Скрипты нужно запускать при запуске и завершении работы, для этого можно написать systemd юнит, добавить файлы в /etc/local.d или настроить запуск с помощью скриптов rc.local, rc.local_shutdown в зависимости от системы инициализации.
Настройка Profile-sync-daemon
А это второй способ, намного проще первого, все делается автоматически, нужно только установить и немного сконфигурировать. Программа поддерживает не только Chromium, можно работать и с другими браузерами — firefox, opera и т д. Принцип тот же что и в первом способе — файлы находятся в оперативной памяти и периодически синхронизируются с жестким диском.
Пакета profile-sync-daemon уже нет в официальных репозиториях Ubuntu, но его можно установить из PPA:
sudo add-apt-repository ppa:graysky/utils
sudo apt-get update
$ sudo apt-get install profile-sync-daemon
Для других дистрибутивов команда аналогична, только нужно указать свой пакетный менеджер.
Теперь настройка. Откройте файл /etc/psd.conf.
nano /etc/psd.conf
В переменной USERS укажите имя своего пользователя:
В переменную BROWSERS запишите свой браузер, поддерживаемые значения:
- сhromium
- chromium-dev
- conkeror.mozdev.org
- firefox
- firefox-trunk
- google-chrome
- google-chrome-beta
- google-chrome-unstable
- heftig-aurora
- luakit
- midori
- opera
- opera-next
- qupzilla
- rekonq
- seamonkey
Вот и все, осталось запустить. В OpenRC, Init Scripts используйте:
sudo /etc/init.d/psd start
А для systemd команда будет выглядеть так:
sudo systemctl start psd
Теперь браузер будет работать быстрее не нагружая диск. Еще несколько слов о сжатии. По умолчанию Profile-sync-daemon использует каталог tmp для записи данных, но никто же не мешает нам примонтировать диск zram в tmp, или даже прямо в рабочую папку psd. В следующих статьях я собираюсь рассказать о переносе еще нескольких тяжелых программ в оперативную память, а на сегодня все.