Кэш что такое простым языком

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

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

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

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

Что такое кэш

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Что такое кэш в компьютере, телефоне, браузере и что такое кэширование сайта простыми словами

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

С появлением компьютера и развитием Интернета в наш лексикон ворвалось много новых терминов. Один из них – кэш. Что это такое простыми словами? Попробуем в этом разобраться.

Общие понятия о кэше

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

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

Процесс сохранения информации в кэш называют кэшированием.

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

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

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

Типы кэша

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

Рассмотрим эти способы немного подробнее.

Аппаратная реализация

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

Например, жесткий диск имеет специальную микросхему в качестве такого хранилища.

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

Программная реализация

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

При программном кэшировании размер кэша зависит от размера свободного дискового пространства, а скорость загрузки – от типа носителя.

Кэширование на компьютере

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

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

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

Что такое кэш на телефоне

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

Кэш что такое простым языком. Смотреть фото Кэш что такое простым языком. Смотреть картинку Кэш что такое простым языком. Картинка про Кэш что такое простым языком. Фото Кэш что такое простым языкомили Кэш что такое простым языком. Смотреть фото Кэш что такое простым языком. Смотреть картинку Кэш что такое простым языком. Картинка про Кэш что такое простым языком. Фото Кэш что такое простым языком

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

Любой современный браузер (Chrome, Opera, Mozilla и т. д.) обязательно использует кэширование. Это необходимо для быстрой загрузки веб-страниц и экономии трафика. Это достаточно легко проверить. Если измерить время загрузки страницы при первом посещении сайта и время ее повторной загрузки, то они могут заметно отличаться, так как во втором случае многие файлы, составляющие эту страницу, будут загружаться из кэша на жестком диске вашего компьютера, а не из Интернета.

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

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

Кэш центрального процессора

Кэш что такое простым языком. Смотреть фото Кэш что такое простым языком. Смотреть картинку Кэш что такое простым языком. Картинка про Кэш что такое простым языком. Фото Кэш что такое простым языкомПроцессоры имеют огромную скорость обработки данных, которую не может обеспечить оперативная память. Именно поэтому центральный процессор использует кэширование, при этом он имеет 2-3 уровня кэш-памяти, которые обозначаются L1-L2 (Level 1-3). Уровень L1 имеет наименьший объем, но наибольшую скорость работы. Он работает на той же частоте, что и процессор. Последующие уровни имеют соответственно меньшую скорость работы, но больший объем. Иногда кэш-память центрального процессора называют сверхоперативной памятью.

Очистка кэша

Нужно ли чистить кэш? Вернемся к нашей аналогии с библиотекой и рабочим столом.

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

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

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

Как очистить кэш браузера

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

Google Chrome

В правом верхнем углу браузера нажимаем на кнопку Меню, выбираем Настройки, открывшуюся вкладку прокручиваем вниз и открываем Дополнительные, здесь находим пункт Очистить историю. Кэш что такое простым языком. Смотреть фото Кэш что такое простым языком. Смотреть картинку Кэш что такое простым языком. Картинка про Кэш что такое простым языком. Фото Кэш что такое простым языком

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

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

Mozilla Firefox

Аналогично, заходим в Меню, открываем вкладку Настройки, Кэш что такое простым языком. Смотреть фото Кэш что такое простым языком. Смотреть картинку Кэш что такое простым языком. Картинка про Кэш что такое простым языком. Фото Кэш что такое простым языком

выбираем раздел Приватность и защита

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

и находим пункт Куки и данные сайтов. Кэш что такое простым языком. Смотреть фото Кэш что такое простым языком. Смотреть картинку Кэш что такое простым языком. Картинка про Кэш что такое простым языком. Фото Кэш что такое простым языком

После нажатия также в открывшемся окне выбираем, что нужно удалять.

Opera

Точно также идем в Меню Простые настройки и прокручиваем его до пункта Очистить историю посещений

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

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

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

Универсальный метод

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

который сразу открывает нужное окно.

CCleaner

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

CCleaner — наиболее известная из них. Она предназначена для очистки и оптимизации компьютеров с ОС Windows.

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

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

Программа Glary Utilities

GU – еще одна универсальная программа для чистки и оптимизации ОС. Ее основные возможности, в основном, сходны с возможностями предыдущей программы. Хочу отметить очень удобную команду 1-Кликом, которая находится во второй вкладке окна программы. Эта кнопка запускает целую серию команд, в функции которых входит стандартная очистка ПК. Настраивать при этом ничего не нужно. Кэш что такое простым языком. Смотреть фото Кэш что такое простым языком. Смотреть картинку Кэш что такое простым языком. Картинка про Кэш что такое простым языком. Фото Кэш что такое простым языком

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

Кэширование сайта

Этот вопрос наиболее актуален для веб-мастеров.

Страницы сайта могут кэшироваться на нескольких уровнях.

Большинство современных сайтов написаны на языке PHP и имеют динамические страницы, которые создаются «на лету» по запросу пользователя. Вкратце напомню, как это происходит.

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

Очень много (большая часть) сайтов создано с использованием различных CMS (WordPress, Joomla!, Drupal …). Для таких ресурсов уже разработаны готовые решения для кэширования в виде плагинов или расширений.

Например, самый популярный движок WordPress может использовать такие плагины кэширования:

Каждый из них имеет свои возможности и настройки. Я использую на своих сайтах плагин Hyper Cache. Он бесплатный, легко настраивается и неплохо справляется со своими обязанностями.

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

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

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

Источник

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

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

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

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

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

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 система нестабильна. То есть любой (даже пиковый!) всплеск трафика потенциально может вызвать длительную нестабильность системы.

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

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

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *