Как перенести кэш

Отучиваем Google Chrome убивать ресурс SSD винчестера

Предыстория

Как-то примерно год назад появился у меня компьютер, который можно было брать с собой на диван — ноутбук то есть. Ноутбук выбирался чисто для работы, одним из требований при выборе была неплохая производительность. Процессор Intel Core i3 показался достаточным по производительности.
Но, поначалу шустрый ноутбук все больше и больше начинал меня нервировать своей медлительностью. Не то чтобы он тупил, подвисал и тому подобное — нет, он просто равномерно медленно работал. Особенно это было хорошо заметно если поработаешь за «полноразмерным» компьютером с шустрым винчестером, а потом пересядешь за ноутбук. Виной тому был медленный винчестер ноутбука. Причем это проблема не конкретно моего ноутбука, это проблема всех ноутбуков, потому что в них стоят медленные винчестеры со скоростью вращения 5400 об/мин.
В один из дней это меня достало, и было решено купить SSD. Причем выбирался самый быстрый. Проанализировав занятое место на диске С: и финансы, было решено брать SSD объемом 64 GB. А учитывая что при маленьком объеме у большинства твердотельных накопителей скорость падает пропорционально с уменьшением емкости, круг выбираемых моделей быстро сузился. Выбор пал на Samsung 830.
Но как вставить SSD в ноутбук, в котором нет места под второй винчестер? Вариант с полной заменой HDD на SSD я сразу отмел. Быстрое «гугление» привело к тому, что есть все-таки способы — вместо ненужного нынче DVD поставить SSD. Я был уже не первый с такими вопросами, и быстро нашел что нужен некий переходник в который ложится винчестер и вставляется вместо привода. На ebay.com был найден нужный переходник. Назывался лот «Universal 9.5mm 2.5″ SATA 2nd HDD Hard Driver Caddy For CD DVD Optical Bay». Стоил он чуть больше восьми долларов.
После почти месячного ожидания, свежекупленый SSD был вставлен в переходник, а переходник уже в ноутбук. Конечно крышка переходника не совсем как у родного привода, получилось не совсем незаметно, но достаточно терпимо.
На новенький винчестер была установлена новомодная Windows 8, всё летало и я был просто сказочно рад что ноутбук мой обрел практически вторую жизнь. Радости моей небыло предела до тех пор пока я не запустил программы мониторинга оставшейся жизни SSD. В частности, программа SSD Ready предрекала остаток жизни моему SSD в полгода. Это как-то совсем не радовало. Начал читать, и думать почему так.
Оказалось, все было просто — самой основной нагрузкой на винчестер стал… Google Chrome! Никогда бы не подумал что монстр огромной корпорации будет так вредить моему винчестеру.
Хром постоянно что-то пишет в кеш. Практически беспрерывно. Вот сюда каждые 2 секунды
c:\Users\User\AppData\Local\Google\Chrome\User Data\Default\Cache\
Также еще есть папка куда пишется кеш онлайн-видео которое вы смотрите. Папка эта носит название Media Cache
А еще пишутся иконки, история и все такое. В итоге я пришел к выводу, что папка User Data просто постоянно изменяется, записывая-считывая файлы и убивая мой SSD.

Быстрый анализ интернета дал ясно понять, что инженерам Хрома это абсолютно не доставляет неудобств, ибо настроек по этой части у хрома практически нет. Настройки принудительно можно применить, дописав к ярлыку параметр, и потом запускать Хром нужно обязательно через этот ярлык, иначе запустится без параметров. Такие же танцы с бубном и у огнелиса. А вот у Оперы все проще — задал в настройках без кеша, и всё.
Было решено отключить этот проклятый кеш Хрома чтобы он вообще не писал ничего на диск. Добавляем к ярлыку запуска Google Chrome параметр «—disk-cache-size=1 —media-cache-size=1». И о чудо! Кеш не пишется, а браузер… не летает и довольно плохо работает. Особенно заметно когда открываешь хром с 30 открытыми вкладками, когда он все подгружает заново. Ну и совсем от записей мы тоже не избавились — что-то типа иконок и истории, все равно писалось на диск.
Вторым вариантом решения проблемы был перенос папки с настройками профиля хрома User Data на HDD. Это конечно бы решило все проблемы, но спрашивается зачем я покупал SSD?
Следующий вариант по-моему скромному мнению, решил все мои проблемы. Я решил использовать RAM Drive — т.е. держать все в оперативной памяти, и только лишь при выключении писать на винчестер. Учитывая что ноутбук у меня либо включен, либо в ждущем режиме, то писаться при выключении будет очень редко. Из понравившихся программ остановил выбор на Qsoft RAMDisk. Ставится как драйвер. В свойствах выбрал размер диска, файловую систему, куда писать при выключении. Под диск выделил 512 МБ (думаю разумный минимум 128 МБ).
Можно было перенести просто папку кеша, можно было и добавить к ней папку Media Cache, но я решил полностью избавиться от всяческих записей, и перенести полносью всю папку User Data.
Можно было опять же указать в параметрах ярлыка —user-data-dir=»путь к рам-диску» для перенаправления хранения профиля, можно было прописать в реестре, но при запуске без ярлыка либо обновлении, все это не работало бы. Начал думать как бы так сделать чтобы ничего не меняя перенаправить. И тут я вспомнил про символические ссылки!
Была скачана утилита Link Shell Extension, при помощи которой я фактически на месте папки User Data создал «ярлык», ссылку которая вела на мой рам-диск. Т.е. на диске ничего не лежало, заходя в папку User Data мы сразу же перенаправлялись на рам-диск. Причем в чем плюс такого решения — ни система, ни Хром никакого подвоха не видели.
Хром стал работать еще быстрее чем он был на SSD. Очень быстро. Я теперь наверное даже всем порекомендую хотя-бы кеш хрома вынести на небольшой рам-диск. Лично для меня загадка почему инженеры не придают внимания проблеме того что хром очень много и часто пишет. Надежность информации это хорошо, но не ценой же убийства винчестера!
В итоге проделанных манипуляций хром у меня летает, и пишет в оперативку все свои гадости. SSD счастлив и радует долгой оставшейся жизнью.

Перенос на другой жёсткий диск

Перенос кэша браузера Google Chrome на другой диск проще всего выполняется следующим образом:

  • Найдите папку на своём компьютере, где хранится кэш:
  1. Для начала зайдите в папку AppData, которая находится на диске с системой в папке под названием имени пользователя.
  2. В AppData зайдите в Local, далее Google, Chrome, User Data, Default, а в ней и будет нужная папка Cache.
  • Скопируйте данные из этой папки в новое расположение кэша.
  • Щёлкните правой кнопкой по экрану и выберите «Свойства».
  • Зайдите в «Ярлык».
  • В поле «Объект» после chrome.exe напишите —disk-cache-dir=, а после запишите путь к перенесённой директории с данными.
  • Если Гугл Хром является браузером по умолчанию, он может проигнорировать эту запись и запуститься с умолчанием на расположение кэша. Поэтому используйте командную строку для создания ссылок для Хрома о новом месте расположения:
  1. Запустите командную строку, желательно от имени администратора.
  2. Введите команду mklink, после через пробел: /D «целиком исходный путь» «целиком новый путь».

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

ВНИМАНИЕ. Перенос кэша Яндекс Браузера аналогичен процедуре для Google Chrome. С той лишь разницей, что в папке AppData вам нужно найти папку Yandex, а в ней Yandex Browser и потом точно также User Data, Default и Cache.

В Опере действия выполняются аналогично Яндексу и Google Chrome:

  • В AppData\Local ищете Opera Software.
  • Открываете Opera Stable, в ней и будет находиться Cache.
  • Копируете его в новое место, потом кликаете правой кнопкой по ярлыку Opera.
  • Проставляете в строке «Объект» после opera\launcher.exe точно такую же команду, как для Chrome.

ВАЖНО. Если Opera является браузером по умолчанию, то также необходимо поместить символические ссылки. Можно сделать это из командной строки, как описано выше.

Инструкция по переносу файлов кэша браузера Mozilla Firefox несколько отличается от предыдущих:

  1. По аналогии найдите папку Firefox в подразделах директории AppData.
  2. В ней располагается директория Profiles.
  3. Внутри вы увидите папку, название которой оканчивается на default. Это и есть нужная нам Cache, только с таким непонятным названием. Скопируйте её в новое место расположения.
  4. Вернитесь в AppData и перейдите в Roaming.
  5. Там, в подпапках, найдите директорию Firefox, в которой будет находиться файл profiles.ini.
  6. Дважды щёлкните по нему и откроется текстовый документ.
  7. В строке Path после знака равенства пропишите новый путь расположения кеша. Переменная IsRelative должна быть равна нулю.
  8. Запустите Mozilla.
  9. В адресную строку впишите about:config.
  10. Щёлкните на странице правой кнопкой и выберите «Создать», «Строка».
  11. У вас запросят имя настройки, впечатайте browser.cache.disk.parent_directory.
  12. Далее в окне значения впишите путь к новому месту хранения кэша.
  13. Перезапустите браузер.

Перенос в оперативную память

Как было сказано ранее, иногда имеет смысл перенести кэш браузера не просто на другой диск, а в виртуальный RAM-диск. Создать его можно при помощи одного из множества специальных приложений. Рассмотрим перенос кэша в RAM-диск на примере программы RAM Disk:

  1. Скачайте и установите программу с официального сайта: http://memory.dataram.com/products-and-services/software/ramdisk. Для личного использования программа бесплатна.
  2. Запустите из меню Пуск.
  3. Выберите меню View, Advanced.
  4. Во вкладке Settings выберите желаемый размер RAM-диска. Поставьте галочки Fat32 и Windows Boot Sector.
  5. Нажмите Start.
  6. После окончания создания RAM-диска, нужно определить параметры его загрузки и сохранения. Откройте вкладку Load/Save.
  7. Ставьте галочки для обоих параметров. Это означает, что перед выключением компьютера будет создаваться образ виртуального RAM-диска и записываться на винчестер. А после включения загружаться обратно в RAM. СОВЕТ. Насколько это целесообразно, решать вам. На самом деле кэш имеет значение в тот момент, пока вы сёрфите. Например, проходя и возвращаясь на одни и те же страницы сайта. А в следующий раз вы, возможно, на этот ресурс даже и не зайдёте. Поэтому, если у вас SSD, то лучше не включайте данный параметр. Но вы сами можете определить, где будет сохраняться образ RAM. Ведь, возможно, у вас несколько разных дисков.

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

Решает эту дилемму программа Primo Ramdisk. Она позволяет создать динамический RAM-диск. Суть в том, что вы определяете сами лишь максимальный дисковый объём, а программа сама решает, сколько можно отдать браузеру в настоящий момент исходя из системных показателей. Минусом приложения является то, что оно платное.

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

Windows

В Windiws 7 хром по умолчанию хранит кэш где-то в районе C:\Users\username\AppData\Local\Google\Chrome\User Data\Default\Cache. (Для других ОС см. Источники)

Для изменения метоположени кэша на постоянно, требуется выполнить следующие шаги:

Шаг 1. Изменяем ярлык

ПКМ по ярлыку ⇒ «Свойства» ⇒ вкладка «Ярлык»

Затем:

  1. Создаём где-либо папку для будушего кэша.
    Например, по адресу «D:\temp\Google_Chrome»
  2. В поле «Объект», через пробел, добавляем полный путь к этой папке как параметр:
    —disk-cache-dir=»D:\temp\Google_Chrome»

Теперь по адресу «D:\temp\Google_Chrome» будет храниться кэш браузера Google Chrome. После перезапуска Chrome в ней появятся папочки Cache, Media Cache и т. д.

Чтобы ограничить размер кэша, например, в 300Мб, через пробел добавляем ещё один параметр:

—disk-cache-size=314572800
(300 * 1024 * 1024 = 314572800 байт)

Если хочется избавиться от кэша совсем — установите его размер в 1 🙂

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

Шаг 2. Правим реестр

  1. Открываем редактор реестра (Win+R ⇒ пишем regedit ⇒ жмём Enter)
  2. Переходим по ключу HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command
  3. Там необходимо найти путь к исполняемому файлу Chrome (команду запуска)
  4. Добавляем необходимые параметры после «…\chrome.exe» (в кавычках)

Итоговая команда для запуска в реестре будет выглядеть как-то вроде «C:\Users\Martin\AppData\Local\Google\Chrome\Application\chrome.exe» —disk-cache-dir=»D:\temp\Google_Chrome» —disk-cache-size=314572800 — «%1» (для Win7).

Всё.

Шаг 3. Альтернатива 1

Как вариант, можно не редактировать ярлыки/реестры, а просто поместить символическую ссылку на нужное место вместо старой папки кэша.

Шаг 3. Альтернатива 2

Так же, вместо редактирования параметров запуска, можно использовать Политики:

  1. Откройте редактор реестр.
  2. Перейдите по ключу HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium и добавьте DwordDiskCacheSize (ПКМ по Chromium ⇒ new ⇒ Dword (32-bit value)).
    Установите значение для размера кэша в байтах.
  3. Для установки папки кэша, создайте String с именем DiskCacheDir и установите значение как полный путь к необходимой папке.