Разное

Кэшировать: Кэшировать данные для оптимизации производительности — Microsoft Azure Well-Architected Framework

27.08.2023

Содержание

Кэшировать данные для оптимизации производительности — Microsoft Azure Well-Architected Framework

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья

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

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

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

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

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

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

Дополнительные сведения см. в разделе Кэширование.

Кэш Azure для Redis

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

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

Сеть доставки содержимого (CDN) Azure

Сеть доставки содержимого (CDN) является распределенной сетью серверов, которая позволяет эффективно доставлять пользователям веб-содержимое. CDN хранит кэшированное содержимое на пограничных серверах в расположениях точки присутствия (POP), которые находятся близко к конечным пользователям, чтобы свести к минимуму задержку. Дополнительные сведения о CDN см. в статье Что такое сеть доставки содержимого в Azure?

Следующий

Секция

Новости компании

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

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

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

Что такое кеширование

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

Основная причина появления кеширования заключается в том, что доступ к данным из постоянной памяти занимает значительное время. Таким образом, всякий раз, когда данные извлекаются или обрабатываются, они должны храниться в быстрой оперативной памяти. Мы называем такую память «кешем», рассматриваемым как высокоскоростной уровень хранения данных, основная цель которого — уменьшить потребность в доступе к более медленным слоям хранения данных. Чтобы быть рентабельными и эффективными, кеши должны быть относительно небольшими, особенно по сравнению с традиционной памятью. Вот почему они обычно реализуются с использованием оборудования с быстрым доступом, такого как RAM (Random Access Memory, или оперативная память), плюс программный компонент.

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

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

В чем значимость кеширования

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

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

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

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

Проблемы

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

Проблема согласованности

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

Выбор данных для кэширования

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

Работа с кеш-промахами

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

Типы кеширования

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

Кеширование в памяти

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

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

Кеширование базы данных

Каждая база данных обычно имеет определенный уровень кеширования. В частности, внутренний кеш обычно используется, чтобы избежать чрезмерных запросов к базе данных. Кешируя результат последних выполненных запросов, база данных может немедленно предоставить ранее кешированные данные. Таким образом, в течение периода времени, когда желаемые кешированные данные действительны, база данных может избегать выполнения запросов. Хотя каждая база данных реализует это по-разному, наиболее популярный подход основан на использовании хеш-таблицы, в которой хранятся пары ключ-значение. Как и раньше, ключ используется для поиска значения. Обратите внимание, что такой тип кеша обычно предоставляется по умолчанию технологиями ORM (Object Relational Mapping).

Веб-кеширование

Его можно разделить на две дополнительные подкатегории:

Кеширование веб-клиента

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

Кеширование веб-сервера

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

Кеширование CDN

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

Заключение

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

Переведено со статьи, полный текст доступен по ссылке.

Кэш Определение и значение | Dictionary.com

  • Основные определения
  • Синонимы
  • Викторина
  • Похожие материалы
  • Примеры
  • Британский
  • Научный

Показывает уровень оценки в зависимости от сложности слова.

[ каш ]

/ kæʃ /

Сохрани это слово!

См. синонимы для кэша на Thesaurus.com

Показывает уровень оценки в зависимости от сложности слова.


сущ.

тайник, особенно в земле, для боеприпасов, еды, сокровищ и т. д.: Она спрятала свои драгоценности в маленьком тайнике в подвале.

ничего такого скрытого: Враг так и не нашел наш тайник с едой.

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

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

глагол (используется с объектом), кэширование, кэширование.

положить в кеш; скрыть; скрывать.

ДРУГИЕ СЛОВА ДЛЯ ТАЙНИКА

2 копить, накапливать, резервировать, хранить.

5 секрет.

См. синонимы для слова cache на Thesaurus. com

КОНТРОЛЬ

МОЖЕТЕ ЛИ ВЫ ОТВЕЧАТЬ НА ЭТИ ОБЩИЕ ГРАММАТИЧЕСКИЕ ДИСКУССИИ?

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

Вопрос 1 из 7

Какое предложение верно?

Происхождение тайника

Впервые записано в 1585–1595 гг.; от французского, существительное, производное от cacher «скрывать», от неподтвержденного вульгарного латинского coācticāre «убирать», первоначально «упаковывать вместе», частное от латинского coactāre, эквивалентное латинскому coāct(us) «собирать» (причастие прошедшего времени от cōgere «собирать, принуждать») + -icā- суффикс формирующего глагола + -re окончание инфинитива

СЛОВА, КОТОРЫЕ МОЖНО СПУТАТЬ С cache

cache , cachet, cash

Слова рядом с cache

cacciatore, Caccini, Cáceres, cachaca, cachalot, cache, cachectin, Cache la Poudre, cache memory, cachepot, cachet

Dictionary. com Unabridged Основано на словаре Random House Unabridged Dictionary, © Random House, Inc., 2023

Слова, относящиеся к тайнику

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

Как использовать кэш в предложении

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

    Знакомьтесь: Baconator|Фрэнк Шарп|2 октября 2020 г.|ProPublica

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

    Twitter предупреждает разработчиков о том, что их закрытые ключи и токены учетных записей могли быть раскрыты|Зак Уиттакер|25 сентября 2020 г. |TechCrunch

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

    Twitter предупреждает разработчиков о том, что их закрытые ключи и токены учетных записей могли быть раскрыты|Зак Уиттакер|25 сентября 2020 г.|TechCrunch

  • Держите медведей подальше от ваших запасов еды. Одно из моих любимых применений шнура 550 — это когда мне нужно подвесить тайник с едой высоко на дереве.

    Этот важный инструмент для выживания может спасти вашу жизнь 10 разными способами|Тим МакВелч/Outdoor Life|15 сентября 2020 г.|Popular-Science

  • мир, наша способность вести переговоры увеличилась.

    «Все не так ужасно, как казалось»: как бизнес цифровой рекламы The Wall Street Journal пережил спад|Lucinda Southern|20 августа 2020 г.|Digiday

  • В конце концов, они вместе с Washington Post опубликуют множество разоблачений из тайника Сноудена.

    Лаура Пойтрас о нераскрытых секретах Сноудена|Марлоу Стерн|1 декабря 2014 г.|DAILY BEAST

  • Рыжие белки прячут сосновые шишки (экономят медведям массу работы).

    Что нужно, чтобы убить медведя гризли|Даг Пикок|23 ноября 2014 г.|DAILY BEAST

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

    Дэвид Против. Голиаф в эпоху видео по запросу|Тео Багби|25 сентября 2014 г.|DAILY BEAST

  • Первый кеш с фотографиями попал в сеть в конце августа, и жертвами стали знаменитости Дженнифер Лоуренс, Кейт Аптон и другие.

    ‘The Fappening 2’: Эмбер Херд, Рианна и другие знаменитости стали мишенью для последнего хакерского обнажённого веселья|Марлоу Стерн|22 сентября 2014 г.|DAILY BEAST

  • Print также имеет определенный тайник, который может понравиться обоим секс-работникам и клиенты.

    Важность объявлений для взрослых|Хазлитт|6 сентября 2014|DAILY BEAST

  • По мере приближения каравана Дэвид был уверен, что видит перед собой владельца тайника и собаки.

    В поисках золота на тропе Далтона|Артур Р. Томпсон

  • Они пошли в комнату, где спал Беммон, и почти сразу нашли его тайник.

    Космическая тюрьма|Том Годвин

  • Они не были пьяницами, но тайник дал им надежду на выпивку.

    Пляж мечты|H. Де Вер Стакпул

  • На худой конец в тайнике был хлеб.

    Пляж мечты|Х. De Vere Stacpoole

  • Не могли бы мы сделать что-то вроде тайника — закопать его прямо возле хижины на ночь?

    The Three Partners|Bret Harte

Определения в британском словаре для cache

cache

/ (kæʃ) /


существительное

a hidden store провизии, оружия, сокровищ и т. д.

место, где спрятано такое хранилище

вычисление небольшой высокоскоростной памяти, повышающей производительность компьютера

глагол

(tr) хранить в кэше cacher to hide

Английский словарь Коллинза — полное и полное цифровое издание 2012 г. © William Collins Sons & Co. Ltd., 1979, 1986 © HarperCollins Издатели 1998, 2000, 2003, 2005, 2006, 2007, 2009, 2012

Научные определения тайника

Кэш

[ kăsh ]


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

Научный словарь American Heritage® Copyright © 2011. Опубликовано издательством Houghton Mifflin Harcourt Publishing Company. Все права защищены.

Что такое кэш? Определение, работа, типы и важность

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

Содержание

  • Что такое кэш?
  • Как работает кэш?
  • Понимание 10 типов кэша
  • Важность кэша

Что такое кэш?

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

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

Кэш используется, поскольку объемное или основное хранилище не может удовлетворить потребности пользователей. Кэш минимизирует время доступа к данным, снижает задержку и улучшает ввод-вывод (I/O). Метод кэширования повышает производительность приложений, поскольку практически все рабочие нагрузки приложений основаны на операциях ввода-вывода.

Кэши существуют как в аппаратном, так и в программном обеспечении.

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

Каждый онлайн-браузер сохраняет собственный кеш, включая Microsoft Edge, Google Chrome, Firefox и Safari. Кэш браузера сохраняет файлы, необходимые для отображения веб-страниц, к которым обращается браузер. Он включает HTML-документ, определяющий веб-сайт, руководства по каскадным таблицам стилей (CSS), Javascript, файлы cookie и графику.

Например, когда вы просматриваете Amazon, он извлекает все фотографии, связанные со страницами продуктов, которые вы видите, — HTML, файлы сценариев, необходимые для создания сайтов, и данные настройки, такие как ваши учетные данные для входа и содержимое корзины покупок. Если вы удалите кэш своего браузера, розничные веб-сайты потребуют от вас повторного входа в систему и изменения настроек.

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

Подробнее: Что такое NAS (сетевое хранилище)? Работа, функции и варианты использования

Как работает кэш?

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

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

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

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

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

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

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

Теперь давайте разберемся, как работает аппаратный кеш.

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

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

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

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

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

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

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

Применение программного кэша

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

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

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

Подробнее: Что такое фильтрация URL-адресов? Определение, процесс и рекомендации

Проектирование системы кэширования

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

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

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

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

В этом случае крайне важно определить приемлемые RTO (целевое время восстановления — количество времени, необходимое для восстановления после сбоя) и RPO (целевая точка восстановления — окончательная запись или транзакция, записанная в области восстановления).

Подробнее: 10 лучших антивирусных программ в 2022 году  

Понимание 10 типов кэша

Давайте разберемся с основными типами кэша.

1. Кэш-память L1

L1 — это регистр, встроенный в ЦП, и наиболее распространенный тип кэш-памяти. Размер кэша L1 варьируется от 2 КБ до 64 КБ в зависимости от процессора компьютера, что довольно скромно по сравнению с другими кэшами. Необходимые инструкции ЦП сначала ищутся в кэше L1. Регистры включают аккумуляторы, адресные регистры и программные счетчики, среди многих других.

2. Кэш-память L2

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

3. Кэш-память L3 

Кэш-память уровня 3 — это специализированная память, предназначенная для увеличения скорости L1 и L2. L1 или L2 могут быть намного быстрее, чем L3, в то время как L3 часто вдвое быстрее, чем DRAM. Каждое ядро ​​многоядерного процессора может иметь свой собственный кэш L1 и L2, и они могут объединять кэш L3. Если такой кэш L3 обращается к команде, он часто повышается до уровня кэша выше, чем L3.

4. Кэш с прямым отображением с использованием MCDRAM

Кэш с прямым отображением — это простой метод: каждый адрес в основной памяти преобразуется ровно в один блок кэша. Многоканальная кэш-память DRAM или MCDRAM является практичным средством увеличения пропускной способности памяти. Действуя как кэш-память, он может динамически хранить часто используемые материалы и обеспечивает гораздо большую пропускную способность, чем память DDR. Когда MCDRAM находится в состоянии кэша, он функционирует как кэш прямого отображения. Это указывает на то, что многие ячейки памяти соответствуют одной и той же ячейке кэша.

5. Полностью ассоциативный кэш

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

6. Дисковый кэш

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

7. Постоянный кэш 

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

8. Флэш-кэш

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

9. Постоянный кэш 

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

10. Кэш браузера и приложений

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

Узнать больше: Что такое безопасность электронной почты? Определение, преимущества, примеры и рекомендации

Важность кэш-памяти

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

1. Повышение производительности

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

2. Автономный доступ

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

3. Эффективность приложения

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

4. Эффективность сети

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

5. Лучшее качество обслуживания (QoS)

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

Подробнее: Что такое веб-связь в реальном времени (WebRTC)? Определение, дизайн, важность и примеры

Выводы

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

Эта статья помогла вам понять, как работает кэш? Расскажите нам по телефону Facebook Открывает новое окно