НЕ ПРОПУСТИТЬ ИНТЕРЕСНОЕ

Свежие обсуждения

Sorry. No data so far.

Настройка кэша Google Chrome с помощью групповых политик

Все современные браузеры в процессе отображения веб-страниц временно сохраняют статическую часть контента в кэш на жестком диске компьютера.

Сегодня речь пойдет об особенностях настройки дискового кэша браузера Google Chrome, в первую очередь о его переносе на другой диск.

Напомню, что некоторое время назад мы уже проделали подобную операцию с Google Chrome в операционной системе Linux. Теперь займемся тем же самым, но у же в Windows.

Назначение кэша браузера

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

Технологически в браузерах кэш организован по-разному, но его суть от этого не меняется. Главными задачами дискового кэша браузера являются экономия Интернет-трафика и ускорение загрузки и отображения веб-страниц при их повторном посещении.

Ключевой в данном случае является фраза «повторное посещение». Очевидно, что при первичной загрузке первой страницы того или иного сайта никакой экономии или ускорения не получится.

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

Как происходит управление содержимым дискового кэша браузера

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

Тем, какие файлы следует кэшировать и сколь долго их локальные копии будут считаться актуальными управляет непосредственно web-сервер с помощью HTTP заголовков Cache-Control и Expires.

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

Cache-Control

Cache-Control: max-age=3600

Такой заголовок предписывает браузеру кэшировать результат запроса на 1 час.

Cache-Control: max-age=0, no-cache

А такой запретит кэширование файла вовсе.

Expires

Expires: Wed, 1 Jul 2015 23:55:55 GMT

Заголовок такого вида разрешает браузеру использовать кэш до 1 июля 2015 года.

Браузер

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

В каком случае имеет смысл переносить кэш браузера на другой диск

Проще сразу определить в каком случае ничего перенастраивать не нужно.

Если у вас не самый медленный в мире компьютер с обычным механическим жестким диском, то можно смело настройки кэша не трогать. По моим наблюдениям перенос кэш-файлов Google Chrome в оперативную память (на RAM диск) к сколько-нибудь заметному ускорению работы браузера не приводит.

Попутно тоже самое можно сказать по поводу столь любимой многими операции по очистке кэша браузера. На мой взгляд такую очистку стоит делать в одном единственном случае — перед созданием резервной копии системного диска. При этом результирующий файл бекапа получится немножечко меньше — в пределе на те самые 250 Мбайт. А так, в процессе обычной работы на компьютере, освобожденное на диске в результате очистки место будет вновь занято файлами браузерного кэша очень быстро. В зависимости от интенсивности вашего Интернет-серфинга на это может потребоваться всего лишь пара десятков минут.

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

Известные методы переноса и настройки кэша Google Chrome

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

Флаги запуска приложения Chrome

Когда речь заходит об изменении местоположения дискового кэша Chrome, консультанты Google обычно рекомендуют после chrome.exe добавить флаг —user-data-dir в поле «Объект» и указать новую директорию хранения.

Полностью это может выглядеть, например, так:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir=Z:\
Если нужно задать максимальный объем кэша, то нужно добавить еще один флаг: —disk-cache-size и указать за ним желаемое значение в байтах.

Безо всякого сомнения такой способ настройки имеет полное право на существование, но представляется все же не слишком удобным. Мало того, что нужно отыскать все ярлыки запуска Google Chrome на компьютере и прописать в них флаги запуска, нужно еще не забыть о веб-приложениях на его основе, таких, как, например, GMail.

Символьные ссылки

Достаточно часто пользователи переносят кэш браузера Chrome с помощью символьных ссылок.

Ранее мы достаточно подробно разбирали использование символьных ссылок в Windows, например в цикле статей, посвященных переносу операционной системы на маленький SSD.

Для того, чтобы применить данный способ, необходимо знать дефолтное местоположение дискового кэша Google Chrome:

  • Windows XP:

C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\Google\Chrome\User Data\Default\Cache

C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\Google\Chrome\User Data\Default\Media Cache

  • Windows 8 or 7 or Vista

C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\Cache

C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\Media Cache

Нужно перенести указанные папки на выбранный для этой цели носитель при незапущенном браузере и создать на них ссылки в исходном местоположении. Сделать это можно с помощью команды mklink. Например, при переносе файлов кэша в папку на диске Z:\ команда может выглядеть так:
mklink /D "C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\Cache" "Z:\ChromeCache\Cache"
Очень удобно символьные ссылки создавать в популярном файловом менеджере FAR по “Alt+F6”. Бесплатно скачать и установить его можно с официального сайта программы.

Если перенос осуществляется на механический HDD с целью освобождения места на системном диске, то можно перенести весть пользовательский профиль, то есть целиком папку …\Default.

Но если в качестве целевого предполагается использовать RAM-диск в оперативной памяти, то лучше ограничиться двумя указанными папками. Файлы профиля пользователя в каталоге Default занимают около 200 Мб при том, что объем трафика с ними весьма незначителен.

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

Шаблоны групповых политик Google Chrome

Существует более интересный, простой и абсолютно беспроблемный способ тонкой настройки браузера Google Chrome с помощью шаблонов групповых политик.

Главным образом шаблоны групповых политик предназначены для системных администраторов, которым необходимо управлять правилами Chrome в корпоративных сетях. Тем не менее никто не мешает нам с успехом использовать их и для настроек данного браузера на локальном персональном компьютере.

Первым делом нужно получить соответствующие шаблоны групповых политик и добавить их в операционную систему.

Скачиваем архив с шаблонами групповых политик для Google Chrome отсюда. Файл архива “policy_templates” имеет размер около 7,5 Мб.

После распаковки архива в соответствующих папках можно найти файлы групповых политик для ОС Windows в форматах ADM и ADMX.

Не вдаваясь в подробности можно сказать, что формат ADM применялся в версиях операционной системы до Windows Vista / Windows Server 2008.

ADMX, используемый в современных версиях ОС, позволяет, в первую очередь, экономить место на системных дисках SYSVOL контроллеров доменов, необходимое для хранения назначенных объектов групповых политик.

Скопируйте файлы административных шаблонов в каталог C:\Windows\PolicyDefinitions.

Файл chrome.admx нужно скопировать в корень данной папки. Кроме того для локализации, в данном случае – русификации, в папку C:\Windows\PolicyDefinitions\ru-RU нужно положить файл chrome.adml из папки архива …\policy_templates\windows\admx\ru.

После этого можно сразу же приступать к изменению дефолтных настроек Google Chrome.

Запускаем командную строку с правами администратора и набираем
gpedit.msc
Открывается редактор локальной групповой политики:

ADMX_Google_Chrome

Групповые политики делятся на те, которые выполняются при старте операционной системы и те, которые применяются при входе пользователя в сеанс. Соответственно, первые находятся в ветке “Конфигурация компьютера”, вторые в “Конфигурация пользователя”.

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

Открываем “Конфигурация пользователя”  –>  “Административные шаблоны”  –> “Google”  –> “Google Chrome”  и находим в правой части окна редактора локальной групповой политики “Установка каталога кеша на диске”.

ADMX_Google_Chrome_DiskCacheDir

Прописываем желаемое местоположение дискового кэша браузера Chrome (в примере это корень диска Z:), включаем и сохраняем данное правило.

Теперь можно сразу же проверить результат. Перезапускаем браузер. Если в дополнительных настройках вашего браузера разрешено “Не отключать работающие в фоновом режиме сервисы при закрытии браузера”, то не забудьте выполнить дополнительный выход через значок Chrome в трее.

После запуска Google Chrome на указанном в политике диске или каталоге диска должны появиться папки “Cache” и “Media Cache” (последняя может сразу и не появиться – зависит от типа контента просматриваемого сайта). Собственно, это и все.

Дополнительно, если это необходимо, можно точно так же задать предельно допустимый объем дискового кэша и отдельно объем кэша для медиаданных. Значения нужно задавать в байтах. Так, если Вы захотите ограничить кэш на уровне, например, точно 150 Мб, то в байтах это будет 157286400.

Некоторые соображения по поводу переноса кэша браузера в оперативную память

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

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

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

Например, можно смело порекомендовать “RAMDisk” от компании Dataram. Версия под названием “RAMDisk Software”, имеющая ограничение на максимальный объем виртуального диска до 4 Гб, распространяется бесплатно. Такого объема более чем достаточно для решения нашей задачи.

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

К сожалению подавляющее большинство Windows-программ для организации накопителей в оперативной памяти компьютера, в отличие от Linux, не умеют динамически менять объем виртуального диска.

Для нашей сегодняшней задачи это не так уж и страшно. Достаточно задать с помощью групповых политик максимальный объем дискового кэша и кэша для медиаданных и создать RAMDisk размером на 10-15% больше их суммарного значения.

Если не сделать такой запас, то при приближении к предельному значению выделенного объема операционная система начнет весьма назойливо сообщать о том, что на диске заканчивается место.

Но, коль уж сделан быстрый диск в оперативной памяти, то наверняка захочется перенести на него временные системные файлы. И вот тут при фиксированном размере небольшого RAM-диска начнутся неприятности.

Дело в том, что обычно временные файлы Windows занимают совсем немного места, но время от времени программы, например при автоматическом обновлении, могут пытаться записать в TEMP или TMP весьма солидные объемы информации. Так поступает, в частности, NVIDIA при обновлении своего ПО – пакет скачивается в TMP, а это около 300 Мб.

Долгое время я не мог понять почему на групповых операциях как-то очень нехорошо зависает программа для работы с фотографиями “ViewNX 2” от Nikon. В конце концов оказалось, что опять же из-за недостатка места на носителе для временных файлов.

Можно пытаться бороться с этими неприятностями самостоятельно скачивая пакеты обновлений или задавая в настройках программ альтернативные пути для временных каталогов (если это предусмотрено, конечно). Но очевидно, что кардинально решить проблему можно существенно увеличив объем виртуального носителя – до 1 Гб и более.

Делать это допустимо только тогда, когда компьютер имеет некий “запас” оперативной памяти. В противном случае от переноса временных файлов на RAM-диск лучше отказаться вовсе.

Тем не менее есть отличное решение задачи — “Primo Ramdisk” (VSuite Ramdisk II) от компании ROMEX Software. К сожалению бесплатной версии не предусмотрено, только 30-дневный пробный период. За лицензию “Primo Ramdisk Standard Edition” на два компьютера разработчики просят $29.95. Возможно, оно того стоит.

Данное ПО умеет создавать динамические виртуальные RAM-диски в Windows. Максимальный объем диска задается при его создании, но реально для него задействуется ровно столько оперативной памяти, сколько нужно для размещения на нем файлов в данный момент времени. Как только некая информация с виртуального RAM-диска удаляется, оперативная память тут же (на самом деле через 30 секунд) возвращается операционной системе.

С целью еще большей минимизации использования оперативной памяти можно включить ntfs-сжатие виртуального RAM-диска.

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

Из недостатков можно отметить один, но весьма существенный. Если связать созданный динамический диск с файлом-образом для загрузки/сохранения его содержимого, то такой RAM-диск сразу же динамическим быть перестает. По крайней мере мне не удалось добиться иного.

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

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

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

Как мы уже разобрались выше, на скорость загрузки и отображения впервые посещаемых веб-ресурсов кэш браузера никак не влияет, при просмотре нескольких страниц одного сайта все будет замечательно, а вот успеете ли вы вернуться к некогда ранее посещённому сайту до того, как кэш его страниц станет неактуальным или не будет попросту вытеснен другим более новым – большой вопрос.

В пользу несохраняемого RAM-диска для браузерного кэша и временных системных файлов есть еще минимум два аргумента.

Как часто вы выключаете и перезагружаете компьютер?

Если у вас ноутбук, то скорее всего происходит это довольно редко. Как правило обычным состоянием неработающего подключенного к сети ноутбука является сон, если питание от аккумулятора, то хибернейт.

С настольным компьютером все не так однозначно, скорее всего частота выключений определяется наличием или отсутствием источника бесперебойного питания.

Однако, если в настройках “Электропитание” установлено “Включить быстрый запуск (рекомендуется)”, что по сути представляет собой усеченный вариант хибернейта, то содержимое виртуально диска, созданного с помощью Primo Ramdisk, будет сохраняться и при выключении компьютера.

Заключение

Способ настройки кэша браузера Google Chrome с помощью групповых политик является весьма простым и наиболее эффективным.

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

Наиболее эффективным с точки зрения использования оперативной памяти является программное обеспечение “Primo Ramdisk” (VSuite Ramdisk II) компании ROMEX Software, которое позволяет использовать динамические RAM-диски.

Комментарии: 9. Присоединяйтесь к обсуждению!

  1. Алексей:

    Здравствуйте,кэш то я перенес на другой диск , но хром пришлось настраивать полностью , кроме того слетело расширение Speed Dial 2 (закладки ) и не восстановилось даже из файлов бэкапа из папки Local Storage (((

    • Алексей, здравствуйте. Так Вы кэш перенесли, или профиль целиком? Если именно кэш, как я описал, то такого быть не может по определению — браузер в кэше никаких настроек не держит. Я уже достаточно давно использую именно несохраняемый кэш на нескольких разных компьютерах. Проблем ровно ноль.

  2. Алексей:

    Еще раз здравствуйте , переносил только кэш , а профиль сохранил на всякиий пожарный ,просто скопировав в другое место, но в любом случае Speed Dial 2 слетел ,а там закладок было 150 -200. Хром x64 ,версия последняя .

    • Искренне сожалею, что так получилось. А переносили именно с помощью групповых политик? Если это не простое совпадение чего-то с чем-то, то весьма загадочно. Даже если предположить, что Speed Dial так странно спроектирован, то почему настройки самого Chrome то слетели? Не понимаю.
      Сам я для сохранения информации из Web давно уже пользуюсь Evernote. Очень удобно тем, что сразу видно что было сохранено плюс при необходимости можно работать с информацией без подключения к сети.

  3. Алексей:

    Спасибо , Александр!Всегда читаю ваши статьи. Ну а по поводу хрома , я сам удивился , потому что сохраняю бэкап , да и в профиле гугла хром сохраняется , но на этот раз не помогло , хотя хром и переносил и восстанавливал , без проблем .

  4. Алексей:

    P/S Да, переносил с помощью групповых политик , как описано )

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

  5. Алексей:

    Кстати или нет, у меня два ssd на одном win 8.1 с настроенным по групповым политикам хромом, на другом win 10 тестовый и там тоже установлен хром, вот разница, на ADATA настроенный хром, в остальном SSD настроены одинаково и до недавнего времени показывали приблизительно одинаковый результат.
    Да, хром после обновления слетает даже на англ. правда сейчас получить все настройки и расширения у меня займет секунд 20 ) А слетает совсем наверно не из за групповых политик , я ему просто еще голосовой поиск сношу, удобную и мнговенную отправку денег и т.д

  6. Ну очень благодарен за статью, полёт нормальный…

Написать комментарий

Subscribe without commenting