Содержание
Что такое кэш и зачем он нужен — Журнал «Код»
03.11.2021
1 часть
Что такое куки
2 часть
Что такое кэш и зачем его чистить
Это старые данные, которые уже могут быть неактуальны
Когда не работает какой-то сайт или сервис, от техподдержки часто можно услышать «Почистите кэш и перезагрузите страницу». Иногда это помогает. Рассказываем, почему так происходит, что такое кэш, зачем он нужен и как его почистить.
⚠️ Минутка грамотности. По словарю РАН слово cache в русском пишется «кеш». Но по рекомендациям Гиляревского нужно писать «кэш». И нам нравится, как это произносится. Произнесите вместе с нами:
- КЭШ
- КЭ-ЭШ
- КЭ-Э-Э-Ш
Спасибо.
Что такое кэш
Кэш — это данные, которые компьютер уже получил и использовал один раз, а потом сохранил на будущее. Смысл кэша в том, чтобы в следующий раз взять данные не с далёкого и медленного сервера, а из собственного быстрого кэша. То же самое, что закупиться продуктами на неделю и потом ходить не в магазин, а в холодильник.
В случае с браузером это работает так:
- Браузер сделал запрос на сервер.
- Сервер в ответ прислал страницу, скрипты и все картинки.
- ❤️ Браузер сохранил всё это в память ← это и есть кэш.
Дальше происходит так:
4. Если вкладкой или браузером долго не пользовались, операционная система выгружает из оперативной памяти все страницы, чтобы освободить место для других программ.
5. Если переключиться назад на браузер, он моментально сходит в кэш, возьмёт оттуда загруженную страницу и покажет её на экране.
Получается, что если браузер будет брать из кэша только постоянные данные и скачивать с сервера только что-то новое, то страница будет загружаться гораздо быстрее. Выходит, главная задача браузера — понять, какой «срок годности» у данных в кэше и через какое время их надо запрашивать заново.
👉 Например, браузер может догадаться, что большая картинка на странице вряд ли будем меняться каждые несколько секунд, поэтому имеет смысл подержать её в кэше и не загружать с сервера при каждом посещении. Поэтому в кэше часто хранятся картинки, видеоролики, звуки и другие декоративные элементы страницы.
👉 Для сравнения: браузер понимает, что ответ сервера на конкретный запрос пользователя кэшировать не надо — ведь ответы могут очень быстро меняться. Поэтому ответы от сервера браузер не кэширует.
Какая проблема с кэшем
На первый взгляд кажется, что кэш — это прекрасно: данные уже загружены, к ним можно быстро обратиться и достать оттуда всё, что нужно, без запроса к серверу на другом конце планеты.
Но представьте такую ситуацию: вы заходите в интернет-магазин обуви, в котором покупали уже много раз, но товары почему-то не добавляются в корзину. Или добавляются, но кнопка «Оплатить» не работает. Чаще всего причина в том, что браузер делает так:
- Вы вводите адрес интернет-магазина.
- Браузер смотрит в кэше, есть ли у него какие-то данные от этого сайта и что у них со сроком годности.
- В прошлый раз сервер не сказал браузеру, что у скриптов со сроком годности, поэтому браузер считает все скрипты свежими.
А на самом деле для корзины сервер уже использует новый скрипт.
- Браузер берёт старый скрипт из кэша, подгружает с сайта фотки новых товаров и собирает страницу со старым скриптом.
- Вы нажимаете на кнопку, запускается старый скрипт.
- Сервер не отвечает, потому что рассчитывает уже на новый скрипт.
- Через 3 минуты терпение лопается, и вы уходите на Алиэкспресс за комплектом для кастомной клавиатуры.
Решение — почистить кэш
Когда мы чистим кэш, оттуда удаляются все данные, которые браузер сохранил «на всякий случай». Это значит, что при обновлении страницы браузер заглянет в кэш, увидит, что там пусто и запросит все данные с сервера заново. Они, конечно, тоже сразу отправятся в кэш, но в следующий раз вы уже будете знать, что делать.
Чтобы очистить кэш в Сафари, достаточно нажать ⌥+⌘+E, а в Хроме — нажать Ctrl+Shift+Backspace (⇧+⌘+Backspace) и выбрать время, в пределах которого нужно очистить кэш:
Зачем нужен кэш, если из-за него всё ломается?
На самом деле всё ломается не из-за кэша, а из-за неправильных настроек сервера, которые отдают страницу. Потому что именно сервер должен сказать браузеру: «Вот это можно кэшировать, а вон то лучше не кэшируй, мало ли что».
Часто разработчики недокручивают эти настройки, и браузер не получает нужных инструкций, поэтому кэширует всё подряд. И тогда приходится вмешиваться, чистить кэш и восстанавливать работоспособность.
Не надо так.
Текст:
Михаил Полянин
Редактор:
Максим Ильяхов
Художник:
Даня Берковский
Корректор:
Ирина Михеева
Вёрстка:
Кирилл Климентьев
Соцсети:
Олег Вешкурцев
Кэш vs куки | OTUS
Что такое кэш (cache) и куки (Cookie), а также чем они различаются, должен знать любой тестировщик программного обеспечения. К тому же, этот вопрос нередко задают на собеседованиях, особенно когда речь идет о малоопытных соискателях, претендующих на позицию Junior/Trainee. Об этом — наша статья.
Кэш
Кэш представляет собой промежуточный буфер памяти и место на жестком диске персонального компьютера, где хранится информация о ранее посещенных веб-страницах, включая изображения и прочие данные.
Представьте, что вы впервые зашли на какой-нибудь сайт. Вы просматриваете разные страницы, при этом вся информация (графическая, текстовая, мультимедийная) загружается на сайт с соответствующего сервера. Когда кэширование подключено, данные с посещенных вами страниц сохраняются на жестком диске в специально отведенной для этого папке. Ниже можно посмотреть, где хранится кэш браузера Google Chrome:
Когда вы посещаете этот сайт второй и последующие разы, ваш веб-браузер проверяет содержимое сайта, а потом выполняет загрузку лишь новой информации. Остальная же информация берется для отображения именно из вашего кэша. Для чего? Во-первых, для повышения скорости загрузки сайта, во-вторых, для снижения нагрузки на интернет-соединение, ведь доступ к данным в кэше осуществляется быстрее.
Надо ли чистить кэш?
Безусловно, да. Делать это следует периодически по следующим причинам:
1. Кэш занимает место на жестком диске, а свободного пространства, как известно, много не бывает. Если долго не чистить кэш, это скажется на скорости работы вашего ПК.
2. Кэш важно чистить в целях безопасности. Недоброжелатели могут попытаться взломать ваш компьютер через кэш.
3. Кэш надо чистить в целях поддержки актуальности данных. Считается, что если кэш не чистить от слова совсем, есть вероятность пропустить обновления на сайтах, которые вы посещаете.
4. Кэш важно чистить для обеспечения корректной работы приложений и онлайн-сервисов. Это важный момент для тестировщика. Когда возникают проблемы на стороне пользователя, не забудьте, прежде всего, почистить кэш браузера.
Куки
Куки тоже хранятся на персональном компьютере пользователя и представляют собой данные (как правило, их небольшой фрагмент). Вот, где хранятся куки браузера Хром:
Этот фрагмент отправляется на ваш компьютер веб-сервером при первом посещении веб-сайта. Согласно международным правилам, вы должны дать согласие на прием куки, впрочем, скорее всего, вы делали это неоднократно, вот, как это может выглядеть:
Главное отличие куки от кэша заключается в том, что каждый раз, когда вы повторно заходите на конкретный сайт, с которого вам был когда-то отправлен конкретный куки, веб-клиент (обычно, это ваш веб-браузер) пересылает этот фрагмент данных web-серверу в составе HTTP-запроса.
Как правило, применение куки упрощает следующие процедуры:
• аутентификацию пользователя;
• хранение персональных настроек и предпочтений;
• отслеживание состояния сеанса доступа;
• ведение статистики и т. д.
Вот несколько примеров использования куки на практике:
1. Авторизация на сайте. Как известно большинство сайтов имеют авторизацию (ввод пароля, логина, телефона, почты и т. п.). Cookie могут применяться сервером для опознания ранее аутентифицированных пользователей.
2. Корзина в интернет-магазинах. Если не использовать куки, при выборе товара и переходе на новую страницу товар может исчезнуть.
3. Настройки. К примеру, вы выставили нужные настройки региона, языка и т. д. Без куки они могут сброситься и вернуться в статус значений по умолчанию.
Надеемся, теперь вы понимаете разницу между кэшом и куки.
Как почистить кэш и куки?
Куки можно почистить в инструментах разработчика. Для Google Chrome нажмите F12, потом вкладку Application (вы должны находиться на странице сайта, куки которого собрались чистить) . Для очистки делаем следующее:
То есть надо будет выбрать адрес сайта под строкой Cookie, нажать правую кнопку мыши, а потом «Clear».
Теперь кэш. Есть разные способы его очистки, но мы продолжим использовать «Инструменты разработчика». Переходим на интересующий веб-сайт, нажимаем F12, потом опять Application. Далее выбираем Clear storage и скроллим вниз. Смотрим, чтобы стояла галочка напротив Cashe storage и нажимаем кнопку Clear site Data. Обратите внимание, что тут же можно почистить сразу и куки, да и не только их.
Напоследок, дадим еще несколько советов начинающим тестировщикам:
— в режиме «Инкогнито» все данные тянутся напрямую с сервера, кэш не используется!
— нажав Ctrl+F5 в обычном режиме браузера, вы также «потянете» все данные не из кэша браузера, а напрямую с сервера.
Что такое кэш (вычисления)?
Что такое кэш?
Кэш (произносится как CASH) — это аппаратное или программное обеспечение, которое используется для временного хранения чего-либо, обычно данных, в вычислительной среде.
Это небольшой объем более быстрой и дорогой памяти, используемый для повышения производительности недавно или часто используемых данных. Кэшированные данные временно хранятся на доступном носителе, локальном для клиента кэша и отдельном от основного хранилища. Кэш обычно используется центральным процессором (ЦП), приложениями, веб-браузерами и операционными системами.
Кэш используется, потому что объемное или основное хранилище не может удовлетворить потребности клиентов. Кэш сокращает время доступа к данным, уменьшает задержку и улучшает ввод/вывод (I/O). Поскольку почти все рабочие нагрузки приложений зависят от операций ввода-вывода, процесс кэширования повышает производительность приложений.
Как работает кэш?
Когда клиент кэша пытается получить доступ к данным, он сначала проверяет кэш. Если данные найдены там, это называется попаданием в кэш 9.0027 . Процент попыток, которые приводят к попаданию в кэш, называется частотой или коэффициентом попадания в кэш.
Запрошенные данные, которых нет в кеше (это называется промахом в кеше), извлекаются из основной памяти и копируются в кеш. Как это делается и какие данные удаляются из кэша, чтобы освободить место для новых данных, зависит от используемого алгоритма кэширования, протоколов кэширования и системных политик.
Кэш-память — это блок памяти, отдельный от основной памяти, доступ к которому осуществляется до основной памяти.
Веб-браузеры, такие как Safari, Firefox и Chrome, используют кэширование браузера для повышения производительности часто посещаемых веб-страниц. Когда пользователь посещает веб-страницу, запрошенные файлы сохраняются в кэше для этого браузера в вычислительном хранилище пользователя.
Чтобы получить ранее открытую страницу, браузер получает большую часть необходимых файлов из кэша, а не повторно отправляет их с веб-сервера. Такой подход называется кешем чтения. Браузер может считывать данные из кеша браузера быстрее, чем перечитывать файлы с веб-страницы.
Кэш важен по нескольким причинам:
- Использование кэша снижает задержку для активных данных. Это приводит к повышению производительности системы или приложения.
- Направляет ввод-вывод в кэш, сокращая количество операций ввода-вывода во внешнее хранилище и более низкие уровни сети хранения данных
- Данные могут постоянно оставаться в традиционном хранилище или во внешних массивах хранения. Это обеспечивает согласованность и целостность данных с помощью таких функций, как моментальные снимки и репликация, предоставляемых хранилищем или массивом.
- Флэш-память используется только для той части рабочей нагрузки, которая выиграет от более низкой задержки. Это приводит к рентабельному использованию более дорогого хранилища.
Кэш-память либо встроена в ЦП, либо встроена в микросхему на системной плате. В более новых машинах единственный способ увеличить кэш-память — обновить системную плату и ЦП до новейшего поколения. Старые системные платы могут иметь пустые слоты, которые можно использовать для увеличения кэш-памяти.
Как используются кэши?
Кэши используются для хранения временных файлов с использованием аппаратных и программных компонентов. Примером аппаратного кэша является кэш процессора. Это небольшой участок памяти процессора компьютера, используемый для хранения основных компьютерных инструкций, которые недавно использовались или часто используются.
Многие приложения и программное обеспечение также имеют собственный кэш. Этот тип кеша временно хранит данные, файлы или инструкции, связанные с приложением, для быстрого поиска.
Веб-браузеры — хороший пример кэширования приложений. Как упоминалось ранее, у браузеров есть собственный кэш, в котором хранится информация о предыдущих сеансах просмотра для использования в будущих сеансах. Пользователь, желающий пересмотреть видео на YouTube, может загрузить его быстрее, потому что браузер обращается к нему из кеша, в котором оно было сохранено из предыдущего сеанса.
К другим типам программного обеспечения, использующим кэши, относятся следующие:
- операционные системы, в которых хранятся часто используемые инструкции и файлы;
- , где информация кэшируется на стороне сервера для более быстрой доставки веб-сайтов;
- системы доменных имен, где они могут использоваться для хранения информации, используемой для преобразования доменных имен в адреса Интернет-протокола; и
- базы данных, где они могут уменьшить задержку в запросе к базе данных
сети доставки контента
Каковы преимущества кэшей?
Есть несколько преимуществ кэширования, в том числе следующие:
- Производительность . Хранение данных в кэше позволяет компьютеру работать быстрее. Например, кэш браузера, в котором хранятся файлы из предыдущих сеансов просмотра, ускоряет доступ к последующим сеансам. Кэш базы данных ускоряет извлечение данных, на загрузку которых в противном случае ушло бы немало времени и ресурсов.
- Автономная работа . Кэши также позволяют приложениям работать без подключения к Интернету. Кэш приложения обеспечивает быстрый доступ к данным, к которым недавно обращались или которые часто используются. Однако кэш может не обеспечивать доступ ко всем функциям приложения.
- Эффективность использования ресурсов . Помимо скорости и гибкости, кэширование помогает физическим устройствам экономить ресурсы. Например, быстрый доступ к кешу экономит заряд батареи.
Каковы недостатки тайников?
Имеются проблемы с кэшем, в том числе следующие:
- Коррупция. Кэши могут быть повреждены, что сделает сохраненные данные бесполезными. Повреждение данных может привести к сбою таких приложений, как браузеры, или неправильному отображению данных.
- Производительность. Кэши обычно представляют собой небольшие хранилища временной памяти.
Если они станут слишком большими, это может привести к снижению производительности. Они также могут потреблять память, которая может понадобиться другим приложениям, что отрицательно сказывается на производительности приложений.
- Устаревшая информация . Иногда в кеше приложения отображается старая или устаревшая информация. Это может привести к сбою приложения или возврату вводящей в заблуждение информации. Если веб-сайт или приложение обновляются в Интернете, использование кэшированной версии из предыдущего сеанса не будет отражать обновление. Это не проблема для статического контента, но проблема для динамического контента, который меняется в течение сеансов или между сеансами.
Алгоритмы кэширования
Инструкции по обслуживанию кэша предоставляются алгоритмами кэширования. Вот некоторые примеры алгоритмов кэширования:
- Наименее часто используемые отслеживает частоту обращения к записи кэша.
Элемент с наименьшим значением удаляется первым.
- Наименее недавно использованные помещает недавно использовавшиеся элементы в верхнюю часть кэша. Когда кеш достигает своего предела, элементы, к которым последний раз обращались, удаляются.
- Последние использовавшиеся сначала удаляются самые последние использовавшиеся элементы. Этот подход лучше всего подходит, когда более старые элементы, скорее всего, будут использоваться.
Политики кэширования
Различные политики кэширования определяют, как работает кэш. Затем включите следующее:
- Кэш с круговой записью записывает операции в хранилище, пропуская кеш. Это предотвращает переполнение кеша при большом количестве операций ввода-вывода записи. Недостатком этого подхода является то, что данные не кэшируются, если они не считаны из хранилища. В результате операция чтения выполняется медленнее, поскольку данные не были кэшированы.
- Кэш со сквозной записью записывает данные в кэш и хранилище. Преимущество кэша со сквозной записью заключается в том, что вновь записываемые данные всегда кэшируются, поэтому их можно быстро прочитать. Недостатком является то, что операции записи не считаются завершенными до тех пор, пока данные не будут записаны как в кэш, так и в основное хранилище. Это может привести к задержке в операциях записи.
- Кэш с обратной записью аналогичен сквозной записи в том смысле, что все операции записи направляются в кеш. Но при кэшировании с обратной записью операция записи считается завершенной после кэширования данных. Как только это происходит, данные копируются из кеша в хранилище.
При таком подходе операции чтения и записи имеют низкую задержку. Недостатком является то, что в зависимости от того, какой механизм кэширования используется, данные остаются уязвимыми к потере до тех пор, пока они не будут зафиксированы в хранилище.
Различные политики кэширования имеют разную силу.
Что дает очистка кеша и как часто это нужно делать?
Очистка кеша освобождает место в памяти устройства. Кэш браузера использует память для хранения файлов, загруженных непосредственно из Интернета. Его очистка может решить проблемы пользователей, такие как следующие;
- Переполнение кэш-памяти может привести к сбою приложений или их неправильной загрузке.
- Старые кэши могут содержать устаревшую информацию и файлы, из-за чего веб-страницы не загружаются или загружаются неправильно. Очистка их может избавиться от устаревшей информации.
- Кэши браузера также содержат сохраненную личную информацию, такую как пароли. Их очистка может защитить пользователя.
- Большинство кешей браузера можно очистить, зайдя в настройки.
Кэш следует очищать периодически, но не ежедневно. Слишком частая очистка кеша не является эффективным использованием ресурсов из-за следующих проблем:
- пользователь теряет возможность быстрого доступа к файлам;
- удаляют некоторые файлы сами по себе и не нуждаются в таком обслуживании; и
- компьютер будет кэшировать новые файлы и снова заполнять пространство.
Кэши
Как очистить кеш?
Кэши браузера знакомы большинству конечных пользователей. В большинстве случаев их очищают, переходя на вкладку настроек или настроек или пункт меню. Эти функции также содержат настройки конфиденциальности, файлы cookie и историю. Пользователи могут удалять или изменять настройки на этих вкладках или в меню.
Многие компьютерные веб-браузеры имеют сочетания клавиш для быстрого доступа к этим меню:
- На компьютерах с Microsoft Windows нажмите Ctrl-Shift-Delete .
- На компьютерах Apple Mac нажмите Command-Shift-Delete .
Эти ярлыки переносят пользователя в меню настроек, которое немного отличается от браузера к браузеру.
Вот как удалить кеш в Google Chrome:
- Нажмите Ctrl-Shift-Delete на компьютере с Windows или Command-Shift-Delete на Mac.
- Перейдите к разделу «Конфиденциальность и безопасность».
- Выбрать Очистить данные просмотра .
- Выберите период времени в раскрывающемся меню или выберите Все время , чтобы удалить весь кеш.
- Нажмите Кэшированные изображения и файлы .
- Щелкните Очистить данные .
Типы тайников
Кэширование используется для многих целей. К различным методам кэширования относятся следующие:
Кэш-память — это ОЗУ, доступ к которому микропроцессор может получить быстрее, чем к обычной ОЗУ. Он часто привязан непосредственно к процессору и используется для кэширования часто используемых инструкций. Кэш ОЗУ быстрее, чем на диске, но кеш-память быстрее, чем кеш ОЗУ, потому что она близка к ЦП.
Посмотрите, как ОЗУ и кэш-память сравниваются с точки зрения использования, скорости, емкости и стоимости.
Кэш-сервер , иногда называемый прокси-кэшем, представляет собой выделенный сетевой сервер или службу. Кэш-серверы сохраняют веб-страницы или другой интернет-контент локально.
Кэш ЦП — это часть памяти, размещенная на ЦП. Эта память работает со скоростью ЦП, а не со скоростью системной шины, и намного быстрее, чем ОЗУ.
Дисковый кэш содержит недавно прочитанные данные и, иногда, смежные области данных, к которым, вероятно, скоро будет осуществлен доступ. Некоторые дисковые кэши кэшируют данные в зависимости от того, как часто они считываются. Часто читаемые блоки памяти называются горячими блоками и автоматически отправляются в кэш.
Флэш-кэш, , также известный как кэширование твердотельных накопителей, использует микросхемы флэш-памяти NAND для временного хранения данных. Флэш-кэш выполняет запросы данных быстрее, чем если бы кеш находился на традиционном жестком диске или в резервном хранилище.
Постоянный кэш — это объем хранилища, в котором данные не теряются в случае перезагрузки или сбоя системы. Резервная батарея используется для защиты данных, или данные сбрасываются в динамическую оперативную память с батарейным питанием в качестве дополнительной защиты от потери данных.
Кэш-память обычно включает постоянную память, встроенную в материнскую плату, и модули памяти, которые можно устанавливать в специальные слоты или места крепления. Шина материнской платы обеспечивает доступ к этой памяти. Кэш-память ЦП в 10–100 раз быстрее, чем ОЗУ, и для ответа на запрос ЦП требуется всего несколько наносекунд. Кэш-память RAM имеет более быстрое время отклика, чем магнитные носители, которые обеспечивают скорость ввода-вывода в миллисекундах.
Резервный буфер перевода, , также называемый TLB, представляет собой кеш памяти, в котором хранятся последние преобразования виртуальной памяти в физические адреса и ускоряются операции с виртуальной памятью.
Посмотрите, как разные типы памяти сравниваются по размеру и скорости.
Узнайте, как настроить веб-браузеры, чтобы избежать отравления веб-кэша, что представляет собой серьезную угрозу безопасности.
Последнее обновление: октябрь 2021 г.
Продолжить чтение О кеше
- Кэш и уровень: в чем разница между кешем и хранилищем?
- Получите максимум от устройств облачного кэширования и шлюзов
- Кэш-память и ОЗУ: различия между двумя типами памяти
- Кэширование флэш-памяти повышает производительность приложений, требуется баланс
- Рассмотрите эти ключевые стратегии кэширования микросервисов
Углубитесь в управление хранением и аналитику
узкое место фон Неймана
Автор: Роберт Шелдон
иерархия
Автор: Рахул Авати
Четыре ключевых факта, которые необходимо знать о CXL
Автор: Энтони Адсхед
Кэш и ОЗУ: различия между двумя типами памяти
Автор: Гарри Кранц
SearchDisasterRecovery
-
Trilio Continuous Restore нацелен на более быстрое восстановлениеОбновление Trilio 3.
0 для своего TrilioVault для Kubernetes включает общедоступное непрерывное восстановление и добавленную поддержку…
-
Как планы обеспечения непрерывности бизнеса подходят для атаки программ-вымогателей?Восстановление — не единственный приоритет при атаке программ-вымогателей. Тщательное планирование, обучение и координация между ИТ-командами имеют решающее значение для…
-
Создайте план обеспечения непрерывности бизнеса при наводнениях, чтобы оставаться на плавуВ случае наводнения не соглашайтесь на размытые планы действий. Загрузите наш бесплатный шаблон плана обеспечения непрерывности бизнеса при наводнениях, чтобы…
SearchDataBackup
-
Cohesity запускает Data Security Alliance для клиентовCohesity сформировала Альянс по безопасности данных из 12 компаний и запустит свой сервис безопасности DataHawk в начале 2023 года.
Обе …
-
Calamu и партнер Wasabi предлагают безопасность хранения данныхCalamu и Wasabi заключили партнерское соглашение, чтобы объединить Calamu Protect с облачным хранилищем Wasabi Hot Cloud Storage, которое уже доступно.
-
Commvault Metallic добавляет архив в облачный сервисКомпания Commvault добавила автономную облачную службу архивирования файлов и объектов в свою SaaS Metallic, чтобы помочь справиться с ростом неструктурированных данных …
SearchDataCenter
-
Недорогие суперкомпьютеры HPE нацелены на рынок искусственного интеллектаHPE выпускает недорогие суперкомпьютеры, предназначенные для обработки сложных рабочих нагрузок на основе ИИ. Dell надеется встретиться со своим давним конкурентом в …
-
Серверы Dell PowerEdge следующего поколения предназначены для рабочих нагрузок HPCПоследнее поколение серверов Dell PowerEdge, оснащенное процессором AMD EPYC, в два раза быстрее, чем предыдущее поколение, с .
..
-
Включите VXLAN в центры обработки данных для повышения скорости сети
СетиVXLAN обеспечивают изоляцию сети и позволяют организациям более эффективно масштабировать сети центров обработки данных. Рассмотрите VXLAN для расширения…
Что такое кэш-память? Кэш-память в компьютерах, объяснение
По
- Бен Луткевич,
Технический писатель
Кэш-память
— это компьютерный компонент на основе микросхемы, который делает извлечение данных из памяти компьютера более эффективным. Он действует как область временного хранения, из которой процессор компьютера может легко извлекать данные. Эта область временного хранения, известная как кэш, более доступна для процессора, чем основной источник памяти компьютера, обычно некоторая форма DRAM.
Кэш-память
иногда называют памятью ЦП (центрального процессора), поскольку она обычно интегрируется непосредственно в микросхему ЦП или размещается на отдельной микросхеме, которая имеет отдельную шину, соединяющую ЦП. Следовательно, он более доступен для процессора и способен повысить эффективность, поскольку физически находится рядом с процессором.
Чтобы быть ближе к процессору, кэш-память должна быть намного меньше основной памяти. Следовательно, у него меньше места для хранения. Кроме того, она дороже основной памяти, поскольку представляет собой более сложный чип, обеспечивающий более высокую производительность.
Чем он жертвует размером и ценой, он компенсирует скоростью. Кэш-память работает в 10–100 раз быстрее, чем ОЗУ, и для ответа на запрос процессора требуется всего несколько наносекунд.
Имя фактического оборудования, используемого для кэш-памяти, — высокоскоростная статическая оперативная память (SRAM). Название оборудования, используемого в основной памяти компьютера, называется динамической оперативной памятью (DRAM).
Кэш-память не следует путать с более широким термином «кэш». Кэши — это временные хранилища данных, которые могут существовать как в аппаратном, так и в программном обеспечении. Кэш-память относится к определенному аппаратному компоненту, который позволяет компьютерам создавать кэши на различных уровнях сети.
Типы кэш-памяти
Кэш-память — это быстро и дорого. Традиционно он классифицируется как «уровни», которые описывают его близость и доступность для микропроцессора. Существует три основных уровня кэша:
Кэш L1 , или первичный кеш, очень быстрый, но относительно небольшой и обычно встроен в микросхему процессора в качестве кеша ЦП.
Кэш L2 , или вторичный кеш, зачастую более емкий, чем L1. Кэш L2 может быть встроен в ЦП или находиться на отдельном чипе или сопроцессоре и иметь высокоскоростную альтернативную системную шину, соединяющую кеш и ЦП. Таким образом, он не замедляется из-за трафика на главной системной шине.
Кэш уровня 3 (L3) — это специализированная память, разработанная для повышения производительности L1 и L2. L1 или L2 могут быть значительно быстрее, чем L3, хотя L3 обычно удваивает скорость DRAM. В многоядерных процессорах каждое ядро может иметь выделенный кэш L1 и L2, но они могут совместно использовать кэш L3. Если кеш L3 ссылается на инструкцию, она обычно повышается до более высокого уровня кеша.
В прошлом кэши L1, L2 и L3 создавались с использованием комбинированных компонентов процессора и материнской платы. В последнее время наблюдается тенденция к объединению всех трех уровней кэширования памяти на самом ЦП. Вот почему основные средства для увеличения размера кеша начали переходить от приобретения конкретной материнской платы с разными наборами микросхем и шинной архитектурой к покупке процессора с нужным объемом встроенного кеша L1, L2 и L3.
Вопреки распространенному мнению, использование флэш-памяти или более динамической оперативной памяти ( DRAM ) в системе не приведет к увеличению кэш-памяти. Это может сбивать с толку, так как термины кэширование памяти (буферизация жесткого диска) и кэш-память часто используются взаимозаменяемо. Кэширование памяти с использованием DRAM или флэш-памяти для буферизации операций чтения с диска предназначено для улучшения операций ввода-вывода хранилища за счет кэширования данных, на которые часто ссылаются в буфере, перед более медленным магнитным диском или лентой. Кэш-память, с другой стороны, обеспечивает буферизацию чтения для ЦП.
Схема архитектуры и потока данных типичного блока кэш-памяти.
Отображение кэш-памяти
Конфигурации кэширования продолжают развиваться, но кэш-память традиционно работает в трех разных конфигурациях:
- Кэш с прямым отображением каждый блок сопоставляется ровно с одной ячейкой кэш-памяти. Концептуально кеш с прямым отображением похож на строки в таблице с тремя столбцами: блок кеша, который содержит фактические извлеченные и сохраненные данные, тег со всем или частью адреса извлеченных данных и бит флага, который показывает наличие в записи строки действительного бита данных.
- Полностью ассоциативное сопоставление кэша по структуре похоже на прямое сопоставление, но позволяет сопоставлять блок памяти с любым расположением кэша, а не с заранее заданным расположением кэш-памяти, как в случае прямого сопоставления.
- Установить ассоциативное сопоставление кэша можно рассматривать как компромисс между прямым сопоставлением и полностью ассоциативным сопоставлением, при котором каждый блок сопоставляется с подмножеством расположений кэша. Иногда его называют N-ассоциативным сопоставлением множества .0027 , который обеспечивает кэширование области основной памяти в любую из «N» ячеек кэша L1.
Политики записи данных
Данные могут быть записаны в память с использованием различных методов, но два основных из них связаны с кэш-памятью:
- Сквозная запись. Данные записываются одновременно в кэш и основную память.
- Обратная запись.
Первоначально данные записываются только в кэш. Затем данные могут быть записаны в основную память, но это не обязательно и не препятствует взаимодействию.
Способ записи данных в кэш влияет на целостность и эффективность данных. Например, при использовании сквозной записи требуется больше операций записи, что приводит к предварительной задержке. При использовании обратной записи операции могут быть более эффективными, но данные между основной и кэш-памятью могут быть несогласованными.
Один из способов, с помощью которого компьютер определяет согласованность данных, заключается в проверке грязного бита в памяти. Грязный бит — это дополнительный бит, включенный в блоки памяти, который указывает, была ли изменена информация. Если данные попадают в регистровый файл процессора с активным грязным битом, это означает, что они устарели и где-то есть более свежие версии. Этот сценарий, скорее всего, произойдет в сценарии с обратной записью, поскольку данные записываются в две области хранения асинхронно.
Специализация и функциональность
Помимо кэшей инструкций и данных, другие кэши предназначены для обеспечения специализированных системных функций. Согласно некоторым определениям, общий дизайн кэша L3 делает его специализированным кэшем. В других определениях кеш инструкций и кеш данных разделены и относятся к каждому из них как к специализированному кешу.
Оперативные буферы трансляции (TLB) также представляют собой специализированные кэши памяти, функция которых заключается в записи преобразований виртуального адреса в физический адрес.
Другие кэши, технически говоря, вообще не являются кэшами памяти. Дисковые кеши, например, могут использовать DRAM или флеш-память для обеспечения кэширования данных, аналогичного тому, что кеши памяти делают с инструкциями ЦП. Если к данным часто обращаются с диска, они кэшируются в DRAM или кремниевой технологии хранения на основе флэш-памяти для более быстрого доступа и отклика.
Специализированные кэши также доступны для таких приложений, как веб-браузеры, базы данных, привязка сетевых адресов и поддержка протокола сетевой файловой системы на стороне клиента. Эти типы кэшей могут быть распределены между несколькими сетевыми хостами, чтобы обеспечить большую масштабируемость или производительность приложения, которое их использует.
Изображение иерархии памяти и ее функционирования
Местность
Способность кэш-памяти повышать производительность компьютера зависит от концепции локальности ссылок. Локальность описывает различные ситуации, которые делают систему более предсказуемой. Кэш-память использует эти ситуации для создания шаблона доступа к памяти, на который она может положиться.
Есть несколько типов местности. Два ключевых для кеша:
- Временная местность. Повторный доступ к одним и тем же ресурсам в течение короткого промежутка времени.
- Пространственная местность. Это относится к доступу к различным данным или ресурсам, которые находятся рядом друг с другом.
Производительность
Кэш-память важна, поскольку повышает эффективность извлечения данных. В нем хранятся программные инструкции и данные, которые многократно используются в работе программ, или информация, которая, вероятно, понадобится процессору в следующий раз. Процессор компьютера может быстрее получить доступ к этой информации из кэша, чем из основной памяти. Быстрый доступ к этим инструкциям увеличивает общую скорость работы программы.
Помимо своей основной функции повышения производительности, кэш-память является ценным ресурсом для оценки общей производительности компьютера. Пользователи могут сделать это, взглянув на соотношение попаданий и промахов кеша. Попадания в кэш — это случаи, когда система успешно извлекает данные из кэша. Промах в кеше — это когда система ищет данные в кеше, не может их найти и вместо этого ищет в другом месте. В некоторых случаях пользователи могут улучшить соотношение попаданий и промахов, отрегулировав размер блока кэш-памяти — размер хранимых единиц данных.
Улучшенная производительность и возможность мониторинга производительности связаны не только с общим удобством для пользователя. По мере развития технологий и все большего использования в критически важных сценариях скорость и надежность приобретают решающее значение. Даже задержка в несколько миллисекунд потенциально может привести к огромным расходам, в зависимости от ситуации.
Диаграмма сравнения кэш-памяти с другими типами памяти
Кэш и основная память
DRAM служит основной памятью компьютера, выполняя вычисления с данными, извлеченными из хранилища. И DRAM, и кэш-память — это энергозависимая память, содержимое которой теряется при отключении питания. DRAM установлена на материнской плате, и ЦП получает к ней доступ через шинное соединение.
DRAM обычно вдвое медленнее кэш-памяти L1, L2 или L3 и намного дешевле. Он обеспечивает более быстрый доступ к данным, чем флэш-память, жесткие диски (HDD) и ленточные накопители. Он стал использоваться в последние несколько десятилетий, чтобы обеспечить место для хранения часто используемых данных на диске для повышения производительности ввода-вывода.
DRAM необходимо обновлять каждые несколько миллисекунд. Кэш-память, которая также является типом оперативной памяти, не нуждается в обновлении. Он встроен непосредственно в ЦП, чтобы предоставить процессору максимально быстрый доступ к ячейкам памяти и обеспечивает время доступа с наносекундной скоростью к часто используемым инструкциям и данным. SRAM работает быстрее, чем DRAM, но поскольку это более сложный чип, его производство и дороже.
Пример динамического ОЗУ.
Кэш и виртуальная память
Компьютер имеет ограниченный объем DRAM и еще меньше кэш-памяти. Когда работает большая программа или несколько программ, память может использоваться полностью. Чтобы компенсировать нехватку физической памяти, операционная система компьютера (ОС) может создавать виртуальную память.
Для этого ОС временно переносит неактивные данные из DRAM в дисковое хранилище. Этот подход увеличивает виртуальное адресное пространство за счет использования активной памяти в DRAM и неактивной памяти в жестких дисках для формирования непрерывных адресов, которые содержат как приложение, так и его данные. Виртуальная память позволяет компьютеру запускать более крупные программы или несколько программ одновременно, и каждая программа работает так, как если бы у нее была неограниченная память.
Для копирования виртуальной памяти в физическую память ОС делит память на файлы подкачки или файлы подкачки, которые содержат определенное количество адресов. Эти страницы хранятся на диске, и когда они нужны, ОС копирует их с диска в оперативную память и транслирует адрес виртуальной памяти в физический. Эти преобразования обрабатываются блоком управления памятью (MMU).
Реализация и история
В мэйнфреймах
использовалась ранняя версия кэш-памяти, но технология, известная сегодня, начала развиваться с появлением микрокомпьютеров. В первых ПК производительность процессора росла намного быстрее, чем производительность памяти, и память стала узким местом, замедляющим работу систем.
В 1980-х годах возникла идея, что небольшое количество более дорогой и быстрой SRAM можно использовать для повышения производительности менее дорогой и более медленной основной памяти. Изначально кэш-память была отделена от системного процессора и не всегда входила в состав чипсета. Ранние ПК обычно имели от 16 КБ до 128 КБ кэш-памяти.
В процессорах 486 Intel добавила к ЦП 8 КБ памяти в качестве памяти уровня 1 (L1). В этих системах использовалось до 256 КБ внешней кэш-памяти 2-го уровня (L2). В процессорах Pentium объем внешней кэш-памяти снова удвоился до 512 КБ на верхнем уровне. Они также разделили внутреннюю кэш-память на два кеша: один для инструкций, а другой для данных.
Процессоры
на базе микроархитектуры Intel P6, представленные в 1995 году, были первыми, в которых кеш-память L2 была встроена в ЦП, что позволило всей кэш-памяти системы работать с той же тактовой частотой, что и процессор. До P6 доступ к памяти L2, внешней по отношению к ЦП, осуществлялся с гораздо более низкой тактовой частотой, чем скорость, с которой работал процессор, и значительно снижала производительность системы.
Ранние контроллеры кэш-памяти использовали архитектуру кэш-памяти со сквозной записью, в которой данные, записанные в кэш-память, также немедленно обновлялись в ОЗУ. Это позволило свести к минимуму потерю данных, но также замедлило работу. В более поздних ПК на базе 486 была разработана архитектура кэша с обратной записью, в которой ОЗУ не обновляется немедленно. Вместо этого данные хранятся в кеше, а ОЗУ обновляется только через определенные промежутки времени или при определенных обстоятельствах, когда данные отсутствуют или устарели.
Последнее обновление: февраль 2020 г.
Продолжить чтение О кэш-памяти
- Как увеличить кэш-память?
- Влияние ЦП и памяти на производительность приложений
- Оптимизация ресурсов памяти в виртуальной среде
- В чем разница между оперативной и кэш-памятью?
- Кэш-память в компьютерной организации
Копать глубже во флэш-памяти и хранилище
неравномерный доступ к памяти (NUMA)
Автор: Рахул Авати
узкое место фон Неймана
Автор: Роберт Шелдон
управление памятью
Автор: Роберт Шелдон
энергозависимая память
Автор: Роберт Шелдон
SearchDisasterRecovery
-
Trilio Continuous Restore нацелен на более быстрое восстановлениеОбновление Trilio 3.
0 для своего TrilioVault для Kubernetes включает общедоступное непрерывное восстановление и добавленную поддержку…
-
Как планы обеспечения непрерывности бизнеса подходят для атаки программ-вымогателей?Восстановление — не единственный приоритет при атаке программ-вымогателей. Тщательное планирование, обучение и координация между ИТ-командами имеют решающее значение для…
-
Создайте план обеспечения непрерывности бизнеса при наводнениях, чтобы оставаться на плавуВ случае наводнения не соглашайтесь на размытые планы действий. Загрузите наш бесплатный шаблон плана обеспечения непрерывности бизнеса при наводнениях, чтобы…
SearchDataBackup
-
Cohesity запускает Data Security Alliance для клиентовCohesity сформировала Альянс по безопасности данных из 12 компаний и запустит свой сервис безопасности DataHawk в начале 2023 года.
Обе …
-
Calamu и партнер Wasabi предлагают безопасность хранения данныхCalamu и Wasabi объединили усилия, чтобы объединить Calamu Protect с облачным хранилищем Wasabi Hot Cloud Storage, которое уже доступно.
-
Commvault Metallic добавляет архив в облачный сервисКомпания Commvault добавила автономную облачную службу архивирования файлов и объектов в свою SaaS Metallic, чтобы помочь справиться с ростом неструктурированных данных …
SearchDataCenter
-
Недорогие суперкомпьютеры HPE нацелены на рынок искусственного интеллектаHPE выпускает недорогие суперкомпьютеры, предназначенные для обработки сложных рабочих нагрузок на основе ИИ. Dell надеется встретиться со своим давним конкурентом в …
-
Серверы Dell PowerEdge следующего поколения предназначены для рабочих нагрузок HPCПоследнее поколение серверов Dell PowerEdge, оснащенное процессором AMD EPYC, в два раза быстрее, чем предыдущее поколение, с .