31111111111Rating 3.00 (5 Votes)
В нете встречал много разных статей, частично копипастов, не все рабочие на самом деле или не доконца описан описан процесс настройки, в итоге мне пришлось объединить несколько практик, часть из них доработана, за основу легла статья с developers-club, где описан процесс настройки ramdisk'а, весь алгоритм в краце я описал в скрипте на GitHub, скрип был накидан на скорую руку, но вполне оказался рабочим, если в системе до его запуска, настройка ramdisk'а не производилась (проверено на Debian, запускать скрипт необходимо из-под sudo пользователя, для которого создается сервис, после работы скрипта необходимо назначить chown -R и chmod -R 755 на созданные каталоги ~/.chrome) ))

Создание папок ramdisk'а

Ускорить Chrome можно поместив кеш браузера в ОЗУ, по факту в профиле пользователя необходимо создать несколько каталогов:
mkdir -p ~/.chrome/ramdisk/{cache,config,Default}
 Далее необходимо создать симлинки на несколько chrome-папок:

cd ~/.chrome/ramdisk
ln -s ~/.config/google-chrome config
ln -s ~/.cache/google-chrome cache

Сразу создадим архив содержимого, он понадобится в будущем:
cd ..
tar -cpf ramdisk.tar ramdisk/*
Добавим ramdisk папку в fstab:
tmpfs /home/USERNAME/.chrome/ramdisk tmpfs noatime,nodiratime,nodev,nosuid,uid=1000,gid=1000,mode=0700,size=300M 0 0
Где здесь и далее USERNAME имя домашней папки пользователя, uid=1000,gid=1000 - соответственно его uid, gid

Политика кеширования Google Chrome

Создадим политику cache-size.json в каталоге /etc/opt/chrome/policies/managed/ с содержанием:

{
    "DiskCacheDir": "/home/USERNAME/.chrome/ramdisk/",
    "DiskCacheSize": 40000000,
    "MediaCacheSize": 30000000
}

Создание сервиса по восстановлению кэша

После каждой перезагрузки данные с ramdisk'а будут удаляться, можно этого избежать создав сервис и скрипт по сохранению данных, скрипт можно расположить где угодно и назвать как угодно, в данном случае он располагается в каталоге ~/bin, называется файл - chrome-ramdisk, содержит следующие строки:

#!/bin/bash

shopt -s dotglob
cd /home/USERNAME/.chrome

if [[ "$1" == "save" ]]; then
    rm ramdisk.tar
    tar -cpf ramdisk.tar ramdisk/*
  elif [[ "$1" == "restore" ]]; then
    rm -rf ramdisk/*
    tar -xf ramdisk.tar
fi

Так же необходимо задать права на исполнение данному файлу:
chmod +x ~/bin/chrome-ramdisk
Создать сервис - /etc/systemd/system/chrome-ramdisk-USERNAME.service с содержанием:

[Unit]
Description=Keep Chrome's RAM disk between power-offs

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/home/USERNAME/bin/chrome-ramdisk restore
ExecStop=/home/USERNAME/bin/chrome-ramdisk save

[Install]
WantedBy=multi-user.target

Перезагрузить systemd:
systemctl daemon-reload
Включить и запустить сервис:
systemctl start chrome-ramdisk-USERNAME.service && systemctl enable chrome-ramdisk-USERNAME.service
Перезапустить компьютер, запустить Chrome, поюзать его и убедиться, что данные на диск складыватся:
df -h ~/.chrome/ramdisk
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           300M   40M  261M  14% /home/USERNAME/.chrome/ramdisk

Дополнительно

Размер диска можно менять в опциях подключения fstab, настройку количества кеша в политике Chrome. Так же рекомендуется перенести /tmp в ОЗУ:
UUID=... /tmp tmpfs nodev,nosuid,size=6G 0 2
Все эти действия помогут разгрузить SSD, что по идее должно продлить его жизнь, ускорить работу системы в принципе, правда весь полет фантазии упирается в количество ОЗУ. Неплохо по оптимизации SSD написано на ArchWiki.

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


Защитный код
Обновить

Сейчас 585 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз