Что такое рост кеша

Обновлено: 01.07.2024

Microsoft Windows XP Professional x64 Edition Windows Vista Home Basic Windows Vista Home Premium Windows Vista Business Windows Vista Enterprise Windows Vista Ultimate Windows Vista Home Basic 64-разрядная версия Windows Vista Home Premium 64-разрядная версия Windows Vista Enterprise 64-разрядная версия Windows Vista Ultimate 64-bit Edition Windows Server 2008 Datacenter без Hyper-V Windows Server 2008 Enterprise без Hyper-V Windows Server 2008 Standard без Hyper-V Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 для систем на базе Itanium Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 с пакетом обновления 1 Windows Server 2008 R2 Standard Подробнее. Меньше

Симптомы

В различных версиях Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 и Windows Server 2008 R2 возникают проблемы с производительностью приложений и служб. Кроме того, вы заметили следующие симптомы:

Доступная память почти исчерпана.

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

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

Причина

Управление памятью в операционных системах Microsoft Windows использует алгоритм, основанный на запросах. Если какой-либо процесс запрашивает и использует большой объем памяти, размер рабочего набора (количество страниц памяти в физической ОЗУ) процесса увеличивается. Если эти запросы непрерывны и не проверяются, рабочий набор процесса будет увеличиваться, чтобы потреблять всю физическую оперативную память. В этой ситуации рабочие наборы для всех других процессов выгружаются на жесткий диск. Такое поведение снижает производительность приложений и служб, поскольку страницы памяти постоянно записываются на жесткий диск и считываются с жесткого диска.

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

В 32-разрядных версиях операционных систем Microsoft Windows, более ранних, чем Windows Vista, рабочие наборы кэша системных файлов имеют теоретический предел памяти менее 1 гигабайта (ГБ). Ограничение диапазона виртуальных адресов не позволяет рабочим наборам кэша системных файлов исчерпать физическую оперативную память.

В 32-разрядных версиях операционных систем Windows Vista ресурсы ядра распределяются динамически. Рабочий набор кэша системных файлов увеличивается, чтобы потреблять диапазон виртуальных адресов режима ядра за счет других ресурсов ядра. Ограничение этого диапазона памяти составляет менее 2 ГБ. Если на компьютере имеется более 2 ГБ физической оперативной памяти, кэш не может исчерпать всю физическую оперативную память. Однако кэш может исчерпать виртуальное адресное пространство в ядре. Это может привести к сбоям выделения памяти для других компонентов ядра.

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

Разрешение

Алгоритмы управления памятью в операционных системах Windows 7 и Windows Server 2008 R2 были обновлены для решения многих проблем с кэшированием файлов, обнаруженных в более ранних версиях Windows. Есть только определенные уникальные ситуации, в которых вам необходимо реализовать эту службу на компьютерах под управлением Windows 7 или Windows Server 2008 R2.

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

Чтобы определить, подвержена ли эта проблема вашей системе, установите инструмент SysInternals RamMap. Вы можете получить этот инструмент на следующем веб-сайте Windows Sysinternals:

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

Рис. 1. Пример вывода RamMap, в котором компьютер испытывает проблему.


Рис. 2. Пример выходных данных RamMap, в которых компьютер не испытывает проблемы.


Если счетчик Memory\System Cache Resident Bytes в системном мониторе показывает тенденцию к увеличению с течением времени, проблема возникает на компьютере, как показано на рис. 3.

Рис. 3. Пример выходных данных системного монитора, в которых компьютер испытывает проблему с течением времени.

Требования к перезапуску

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

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

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

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

Некоторые настройки реестра динамического кэша:

Файловые серверы, вы можете попробовать 1 ГБ.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes"=dword:00000400
"MinSystemCacheMBytes"=dword:00000064
"SampleIntervalSecs"=dword:0000003c
"CacheUpdateThresholdMBytes"=dword:00000064

Exchange 2007, вы можете попробовать 500 МБ:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes"=dword:000001F4
"MinSystemCacheMBytes"= dword:00000064
"SampleIntervalSecs"=dword:0000003c
"CacheUpdateThresholdMBytes"=dword:00000064

SQL 2005 и более поздние версии в прошлом при работе с SQL EE использовали 2 ГБ:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
"MaxSystemCacheMBytes"=dword:000007D0 < br />"MinSystemCacheMBytes"=dword:00000064
"SampleIntervalSecs"=dword:0000003c
"CacheUpdateThresholdMBytes"=dword:00000064

Дополнительная информация

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

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

Установка и использование Microsoft Dynamic Cache Service не приводит к исключению поддержки Microsoft Windows. Эта служба и ее исходный код представлены в качестве примера использования API, поддерживаемых корпорацией Майкрософт, для уменьшения роста кэша файловой системы.

Вы можете получить службу и исходный код на следующем веб-сайте Microsoft:

Дополнительные ресурсы

Прочитайте главы 9 (Управление памятью) и 10 (Диспетчер кэша) 5-го издания Windows Internals.

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

918483 Как уменьшить подкачку памяти пула буферов в 64-разрядной версии SQL Server

895932 На что следует обратить внимание перед включением режима системного кэша в Windows XP

232271 Как оптимизировать сервер Windows NT с помощью реестра

837331 О диспетчере кэша в Windows Server 2003

Статус

Microsoft подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе "Относится к".

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

Как работает кэширование?

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

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

Обзор кэширования

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

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

Рекомендации по кэшированию. При реализации уровня кэширования необходимо обратить особое внимание на кэшируемость данных. Эффективный кэширование частоты запросов, наличие в кэше запрашиваемых данных. Промах кэша происходит, когда запрашиваемых данных в кэше нет. Для удаления из кэша неактуальных данных применяются такие механизмы, как TTL (время жизни). Также следует понимать, что для кэширования среды требуется высокая доступность. Если необходимо, можно использовать сервисы в памяти, такие как Redis. В случае обнаружения уровня в памяти можно использовать как отдельный уровень хранения данных, в отличие от кэширования из хранилища. Чтобы решить, подходит ли такой вариант, необходимо определить для данных в сервисе значения времени RTO (требуемое время восстановления, то есть количество времени требуется система на восстановление после страха) и RPO (требуемая восстановление, то есть последняя точка восстанавливаемая точка или транзакция) . Для соответствия большинству безопасности RTO и RPO можно применять характеристики и проектные стратегии различных служб в памяти.

diagram_cachingmicrosite

Ускорение получения веб-контента от веб-сайтов (браузеры или устройства)

Кэширование с помощью Amazon ElastiCache

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

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

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

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

Сокращение затрат на базы данных

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

Снижение нагрузки на серверную часть

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

Прогнозируемая производительность

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

Устранение проблемных мест в базах данных

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

Повышение пропускной способности операций чтения (количество операций ввода-вывода в секунду)

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

Что такое Кэш-память в моем компьютере?

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

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

Определение кэша компьютера

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

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

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

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

Другое использование термина «кеш»

Как кеш-память влияет на производительность

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

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

Попадания и промахи

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

Что делать, если мой кеш заполнен?

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

Объяснение уровней кэша

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

Кэш 1-го уровня

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

Кэш второго уровня

Уровень 2 (L2) также называется «вторичным кешем». Это то, куда ваш компьютер идет, когда он не может найти ваши данные (или получает «промах») после поиска в кеше L1. Уровень 2 обычно находится на карте памяти в непосредственной близости от процессора.

Кэш диска

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

Кэш графического процессора

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

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

Как покупать с учетом кеша

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

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

Задержка

Чтобы получить доступ к данным, думайте о задержке как о "скорости". Сколько времени требуется вашему компьютеру, чтобы добраться до этого кеша памяти L2? Если это меньший кеш, это будет быстрее. Кэш L2 объемом 6 МБ будет иметь повышенную задержку по сравнению с кешем 3 МБ. Компьютеры более высокого класса используют мультисистемный подход, который размещает данные в дополнительных кэшах меньшего размера. Это решает проблему хранения большего количества информации с меньшей общей задержкой.

Заключение

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

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

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

Статьи по теме:

Об авторе

Линси Кнерл (Linsey Knerl) является автором статей для HP® Tech Takes. Линси — писатель со Среднего Запада, оратор и член ASJA. Она стремится помогать потребителям и владельцам малого бизнеса использовать свои ресурсы с помощью новейших технических решений.

Связанные теги

Популярные статьи

Также посетите

Архивы статей

Нужна помощь?

Рекомендованная производителем розничная цена HP может быть снижена. Рекомендованная производителем розничная цена HP указана либо как отдельная цена, либо как зачеркнутая цена, а также указана цена со скидкой или рекламная цена. На скидки или рекламные цены указывает наличие дополнительной более высокой рекомендованной розничной цены зачеркнутой цены.

Ultrabook, Celeron, Celeron Inside, Core Inside, Intel, логотип Intel, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, логотип Intel Inside, Intel vPro, Itanium, Itanium Inside, Pentium, Pentium Inside, vPro Inside , Xeon, Xeon Phi, Xeon Inside и Intel Optane являются товарными знаками корпорации Intel или ее дочерних компаний в США и/или других странах.

Домашняя гарантия доступна только для некоторых настраиваемых настольных ПК HP. Необходимость обслуживания на дому определяется представителем службы поддержки HP. Заказчику может потребоваться запустить программы самопроверки системы или исправить выявленные неисправности, следуя советам, полученным по телефону. Услуги на месте предоставляются только в том случае, если проблема не может быть устранена удаленно. Услуга недоступна в праздничные и выходные дни.

HP передаст ваше имя и адрес, IP-адрес, заказанные продукты и связанные с ними расходы, а также другую личную информацию, связанную с обработкой вашего заявления, в Bill Me Later®. Bill Me Later будет использовать эти данные в соответствии со своей политикой конфиденциальности.

Подходящие продукты/покупки HP Rewards определяются как принадлежащие к следующим категориям: принтеры, ПК для бизнеса (марки Elite, Pro и рабочие станции), выберите аксессуары для бизнеса и выберите чернила, тонер и бумага.

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

Схема кэширования памяти.

Обзор кэширования памяти

Как работает кэширование памяти?

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

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

Проблема с кешем заключается в том, как свести к минимуму «промахи кеша», т. е. попытки считывания приложением записей, которых нет в кеше. Если у вас слишком много промахов, эффективность вашего кеша снижается. Приложение, которое только читает новые данные, не выиграет от кеша и фактически будет демонстрировать более низкую производительность из-за дополнительной работы по проверке кеша, но не находит в нем нужную запись. Одним из способов решения этой проблемы является использование больших кешей. Это часто нецелесообразно на одном компьютере, поэтому распределенные кэши являются популярным выбором для ускорения работы приложений, которым необходим доступ к большим наборам данных. Распределенный кэш-память объединяет оперативную память нескольких компьютеров, подключенных к кластеру, так что вы можете создать кэш большего размера, который может продолжать расти, добавляя новые компьютеры в кластер. Такие технологии, как Hazelcast IMDG, можно использовать в качестве распределенного кластера для ускорения крупномасштабных приложений.

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

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

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

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

Читайте также: