Интернет кэш что это такое

Что такое кэш браузера и зачем его очищать?

Многие интернет-пользователи сталкиваются с проблемами в работе своих браузеров и в поисках информации о том, как их исправить натыкаются на такое понятие, как «Кэш».

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

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

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

Что такое кэш браузера

Кэш (Cache) — это специально отведенное место (хранилище) в памяти жесткого диска для хранения копий данных с посещенных страниц сайтов, например таких как: картинки, текст, файлы и т.д.

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

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

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

Зачем нужен кэш?

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

Где находится кэш браузера

Каждый браузер хранит кэшированные файлы в своей определенной папке. Но расположение этой папки может меняться от версии к версии самой программы или от установленной на компьютере операционной системы, например, в Windows, файлы будут лежать в одном месте, а в Linux или Mac OS в другом.

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

У каждого — своя индивидуальная папка

Размер этой папки является фиксированным, но его конечно же можно отрегулировать в настройках программы. Также, браузер сам очищает cache файлы, когда места остается совсем мало, переписывая старые и неиспользуемые новые.

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

Зачем нужно очищать кэш

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

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Если вы хотите очистить cache память определенной странички, когда находитесь на ней, нажмите на клавиатуре синхронно две клавиши «CTRL + F5», после этого она должна загрузиться с новыми данными.

В заключение

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

Источник

Что такое кэш и зачем его чистить

Это старые данные, которые уже могут быть неактуальны

Когда не работает какой-то сайт или сервис, от техподдержки часто можно услышать «Почистите кэш и перезагрузите страницу». Иногда это помогает. Рассказываем, почему так происходит, что такое кэш, зачем он нужен и как его почистить.

⚠️ Минутка грамотности. По словарю РАН слово cache в русском пишется «кеш». Но по рекомендациям Гиляревского нужно писать «кэш». И нам нравится, как это произносится. Произнесите вместе с нами:

Что такое кэш

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

В случае с браузером это работает так:

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Дальше происходит так:

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

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

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

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

👉 Для сравнения: браузер понимает, что ответ сервера на конкретный запрос пользователя кэшировать не надо — ведь ответы могут очень быстро меняться. Поэтому ответы от сервера браузер не кэширует.

Какая проблема с кэшем

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

Но представьте такую ситуацию: вы заходите в интернет-магазин обуви, в котором покупали уже много раз, но товары почему-то не добавляются в корзину. Или добавляются, но кнопка «Оплатить» не работает. Чаще всего причина в том, что браузер делает так:

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Решение — почистить кэш

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

Чтобы очистить кэш в Сафари, достаточно нажать ⌥+⌘+E, а в Хроме — нажать Ctrl+Shift+Backspace (⇧+⌘+Backspace) и выбрать время, в пределах которого нужно очистить кэш:

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Зачем нужен кэш, если из-за него всё ломается?

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

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

Источник

Интернет кэш что это такое

(cache) браузера — это папка с копиями некоторых данных со страниц, которые вы посещали. Обычно в кеше сохраняются те элементы страницы, которые вряд ли успели измениться за промежуток времени между двумя запросами, — музыка, видео, изображения, стили, скрипты. Когда вы снова откроете ту же самую страницу, Яндекс.Браузер не будет запрашивать данные из интернета, а получит их из кеша. Страница откроется быстрее, а нагрузка на сеть снизится.

Пример использования кеша

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

Как очистить кеш

Чтобы очистить кеш:

Где находится кеш браузера

Чтобы просмотреть или скопировать кеш Яндекс.Браузера (например, для технической поддержки ), откройте папки:

Операционная системаАдрес кеша
Windows 7, Windows 8, Windows 10C:\\Пользователи\\Имя вашей учетной записи\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\Default\\Cache

/Library/Application Support/Yandex/YandexBrowser/Default/GPUCache

Операционная системаАдрес кеша
Windows 7, Windows 8, Windows 10C:\\Пользователи\\Имя вашей учетной записи\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\Default\\Cache

/Library/Application Support/Yandex/YandexBrowser/Default/GPUCache

Кеш хранится только на одном устройстве, при синхронизации устройств он не переносится.

Что такое кеш

(cache) браузера — это папка с копиями некоторых данных со страниц, которые вы посещали. Обычно в кеше сохраняются те элементы страницы, которые вряд ли успели измениться за промежуток времени между двумя запросами, — музыка, видео, изображения, стили, скрипты. Когда вы снова откроете ту же самую страницу, Яндекс.Браузер не будет запрашивать данные из интернета, а получит их из кеша. Страница откроется быстрее, а нагрузка на сеть снизится.

Пример использования кеша

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

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Как очистить кеш

Чтобы очистить кеш:

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Где находится кеш браузера

Чтобы просмотреть или скопировать кеш Яндекс.Браузера (например, для технической поддержки ), откройте папки:

Операционная системаАдрес кеша
Windows 7, Windows 8, Windows 10C:\Пользователи\Имя вашей учетной записи\AppData\Local\Yandex\YandexBrowser\User Data\Default\Cache

/Library/Application Support/Yandex/YandexBrowser/Default/GPUCache

Операционная системаАдрес кеша
Windows 7, Windows 8, Windows 10C:\Пользователи\Имя вашей учетной записи\AppData\Local\Yandex\YandexBrowser\User Data\Default\Cache

/Library/Application Support/Yandex/YandexBrowser/Default/GPUCache

Кеш хранится только на одном устройстве, при синхронизации устройств он не переносится.

Источник

Что такое интернет-кэш простыми словами и можно ли его удалять?

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

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Что такое интернет кеш браузера?

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

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Запускаете игру — ячейки оперативной памяти (находящиеся в специальных микросхемах) снова заполняются, но данными из игры. Чем больше установленной памяти на компьютере — тем больше программ и окон можно открывать одновременно, производительность компьютера выше.

На компьютерах разный объем оперативной памяти. Каждая программа при запуске всегда математически вычисляет некий объем данных. Результаты этих вычислений в основном одинаковы. Они и подгружаются в оперативную память.

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

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Программа запустится уже быстрее. Жесткий диск «предъявляет» оперативной памяти (из тайника), заранее припасенные данные. В операционных системах этот механизм называется «файл подкачки»:

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

На компьютерах с недостаточным количеством ОЗУ (оперативной памяти) увеличение файла подкачки иногда помогает компенсировать ее нехватку, например при запуске Windows. Есть еще технология ReadyBoost для флешки. О ней подробнее рассказывал в этой статье. Там подробно рассказывается о разных способов чистки компьютера от «мусора».

Что означает интернет — кеш и куки в Гугл Хром?

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

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

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

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

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

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

Официально прием и передача куки считается безопасной с точки зрения перехвата личных данных; по идее сервер их отправляющий должен их шифровать. Заметили, что пользователей социальных сетей периодически накрывают «волны» массового взлома аккаунтов? Это и есть следствие кражи паролей из браузеров пользователей при помощи вредоносного ПО (или вирусов). Полностью отказаться от приема cookies нельзя, многие сайты сегодня работают при помощи этого механизма.

На Mozilla FireFox решил остановиться, хотя кэш сам по себе везде у всех браузеров одинаков. Дело в том, что этот браузер работает автономно и в отличие от Chromium его настройки конфидеyциальности и безопасности не зависят он настроек Internet Explorer. И настройка Cookies у него своя. В разделе «Конфидециальность браузера» обратите внимание на следующие места:

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

При нажатии на «Управление данными» можно легко исключить сайты, которые могут отслеживать Вас или формировать для вас рекламу:

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Можно выбрать то, что надо Вам, все легко и понятно. А еще, на базе Mozilla FireFox построен самый анонимный браузер Tor c защитой от отслеживания и просмотра Темного (т. е. анонимного) Интернета. Читайте информацию о его установке и настройке, если захотите попробовать. Это интересно.

Что значит интернет кэш в СCleaner?

Если у Вас некорректно отображается страница в Интернете, (а может вы просто захотели быстро удалить историю просмотров) достаточно нажать сочетание клавиш Ctrl+Shift+Del. Браузер предложит очистить кеш за определенный Вами период времени:

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Но, можно чистить компьютер ( в том числе куки) с помощью специальных программ. Часто используют CCLeaner, но я давно отказался от нее; есть и получше программы. Для примера покажу, что умеет аналогичная и более эффективная Glary Utilites.

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

Так как нам надо вычистить только кэш, а не реестр, выберем «Очистка диска»:

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

За одну минуту программа нашла около 6 гб лишнего мусора, в том числе и кэш всех браузеров, установленных на компьютере. Можно выбрать, какой убивать, а какой оставить. Очистка удалит все позиции отмеченные галочками, будьте внимательны! Кэш удалять можно, а часто даже нужно. Освобождается место на диске и зачищается ненужная старая информация. Удачи и успехов!

Источник

Кэши для «чайников»

Кэш глазами «чайника»:

Интернет кэш что это такое. Смотреть фото Интернет кэш что это такое. Смотреть картинку Интернет кэш что это такое. Картинка про Интернет кэш что это такое. Фото Интернет кэш что это такое

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

Давайте прокрутим полный оборот ситуаций.

Tl;dr: добавляя в архитектуру кэш важно явно осознавать, что кэш может быть средством дестабилизации системы под нагрузкой. Смотрите конец статьи.

Представим, что у нас есть доступ к базе данных, возвращающей курсы валют. Мы спрашиваем rates.example.com/?currency1=XXX&currency2=XXX и в ответ получаем plain text значение курса. Каждые 1000 запросов к базе данных для нас, допустим, стоят 1 евроцент.

Итак, теперь мы хотим показывать на нашем сайте курс доллара к евро. Для этого нам нужно получить курс, поэтому на нашем сайте мы создаём API-обёртку для удобного использования:

И в шаблонах в нужном месте вставляем что-нибудь вроде:

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

Вот тут на сцену выходит его величество Кэш

Зачем нам спрашивать курс для каждого пользователя на каждое обновление страницы, если для людей эта информация, в общем-то, не нужна так часто? Давайте просто ограничим частоту обновления до, например, раз в 5 секунд. Пользователи, переходя со страницы на страницу, всё равно будут видеть новое число, а мы платить будем в 1000 раз меньше.

Сказано – сделано! Добавляем несколько строчек:

Это самый главный аспект кэша: хранение последнего результата.

И вуаля! Сайт снова становится для нас почти бесплатным… До конца месяца, когда мы обнаруживаем от внешней системы счет на 4 евро. Конечно, не 6, но мы ожидали намного большей экономии!

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

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

В случае с memcache это можно реализовать, например, так:

И вот, наконец, потребление сравнялось с ожидаемым — 1 запрос в 5 секунд, расходы сократились до 2 евро в месяц.

Почему 2? Было 6 без кэширования для тысячи человек, мы же всё закэшировали, а сократилось всего в 3 раза? Да, стоило просчитать пораньше… 1 раз в 5 секунд = 12 в минуту = 72 в час = 576 за рабочий день = 17 тысяч в месяц, а ещё не все ходят по расписанию, есть странные личности заглядывающие поздней ночью… Вот и получается, в пике вместо сотни обращений одно, а в тихое время — по-прежнему запрос почти на каждое обращение проходит. Но всё равно, даже в худшем случае счёт должен быть 31×86400÷5 = 5.36 евро.

Так мы познакомились с еще одной гранью: кэш помогает, но не устраняет нагрузку.

Впрочем, в нашем случае люди приходят в проект и уходят и в какой-то момент начинают жаловаться на тормоза: страницы замирают на несколько секунд. А еще бывает под утро сайт не отвечает вообще… Просмотр консоли сайта показывает, что иногда днём запускаются дополнительные инстансы. В это же время скорость выполнения запросов падает до 5-15 секунд на запрос — из-за чего это и происходит.

Упражнение для читателя: посмотреть внимательно предыдущий код и найти причину.

Кстати, это грабли отнюдь не только кэша, это общий аспект распределённых блокировок: важно освобождать блокировки и иметь таймауты, во избежание дедлоков. Если бы мы добавляли “?” вообще без времени жизни, всё б замирало при первой же ошибке связи с внешней системой. К сожалению, memcache не предоставляет хороших способов для создания распределённых блокировок, использование полноценной БД с блокировками на уровне строк лучше, но это было просто лирическое отступление, необходимое просто потому, что на эти грабли наступили.

Итак, мы исправили проблему, вот только ничего не изменилось: всё равно изредка начинались тормоза. Что примечательно, они совпадали по времени с информационным бюллетенем от внешней системы о технических работах…

Ну-ка ну-ка… Давайте сделаем краткую передышку и пересчитаем, что мы насобирали уже сейчас, что должен уметь кэш:

Отсюда: кэш обязан уметь какое-то время хранить отрицательный результат. Наше наивное исходное предположение по сути подразумевает хранение отрицательного результата 0 секунд (но передачу этого самого отрицания всем, кто уже ждёт его). К сожалению, в случае с Memcache реализация нулевого времени ожидания весьма проблематична (оставлю как домашнее задание въедливому читателю; cовет: используйте механизм CAS; и да, в AppEngine можно использовать и Memcache и Memcached).

Мы же просто добавим сохранение отрицательного значения с 1 секундой жизни:

Казалось бы, ну теперь-то уже всё, и можно успокоиться? Как бы не так. Пока мы росли, наш любимый внешний сервис тоже рос, и в какой-то момент начал иногда тормозить и отвечать аж по секунде… И что примечательно – вместе с ним начал тормозить и наш сайт! Причем снова для всех! Но почему? Мы же всё кэшируем, в случае ошибок запоминаем ошибку и тем самым отпускаем всех ожидающих сразу, разве нет?

Что ж, мы можем вместо ожидания, добавить ветку else<> у условия вокруг memcache->add … Правда, стоит, наверное, вернуть последнее известное значение, да? Ведь мы кэшируем ровно затем, что мы согласны получить устаревшие сведения, если нет свежих; итак, еще одно требование к кэшу: пусть подтормаживает не более одного запроса.

Итак, мы снова победили: даже если тормозит внешний сервис, подтормаживает не более одной страницы… То есть как бы среднее время ответа сократилось, но пользователи всё равно немного недовольны.

Примечание: обычный PHP по умолчанию пишет сессии в файлы, блокируя параллельные запросы. Чтобы избежать этого поведения, можно передать в session_start параметр read_and_close либо принудительно закрывать через session_close сессию после совершения всех необходимых изменений, иначе тормозить будет не одна страница, а один пользователь: так как скрипт, обновляющий значение, будет блокировать открытие сессии другим запросом от того же пользователя. При исполнении на AppEngine по умолчанию включено хранение сессий в memcache, то есть без блокировок, поэтому будет проблема не так заметна.

Так вот, пользователи всё равно недовольны (ох уж эти пользователи!). Те, кто проводят времени больше всех на сайте, всё равно замечают эти короткие зависания. И их нисколько не радует осознание факта того, что так случается редко, и им просто не везёт. Придётся для данного случая сделать требование еще более жестким: никакие запросы не должны ждать ответа.

Что же мы можем сделать в такой постановке вопроса? Мы можем:

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

В числе прочих побочных эффектов участились случаи показа устаревшего курса. [Мда… в общем, представьте, что мы сейчас говорим не про наш случай, а про что-нибудь более сложное, где устаревание видно невооруженным глазом 🙂 на самом деле, даже в простом случае обязательно найдётся пользователь, который заметит такие совершенно неочевидные косяки].
Смотрите, что получается:

Итак, давайте подведём промежуточный итог. В бытовом понимании кэш:

Рассмотрим простейший случай:

3600. Что означает, что если отравление наступило на 5000 запросах в минуту, до тех пор, пока нагрузка не упадёт с 5000 до 3000 система нестабильна. То есть любой (даже пиковый!) всплеск трафика потенциально может вызвать длительную нестабильность системы.

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

Всё это не означает, что кэш нельзя или вредно использовать! О том, как правильно применять кэш для улучшения стабильности системы и как восстанавливаться от вышеупомянутой петли гистерезиса, мы поговорим в следующей статье, не переключайтесь.

Источник

Leave a Reply

Your email address will not be published. Required fields are marked *