Что такое кэширование данных отчетов
Кэширование: определение, проверка, настройка и как оно вообще работает
Кэширование — это способ временно сохранить информацию из прошлых запросов пользователя, чтобы в будущем быстрее ее предоставить. Кэширование является стратегически м процессом, обеспечивающим высокую производительность программ. Однако кэширование должно быть разумным, так как оно обладает побочными эффектами.
Кэшированные данные — информация, сохраненная локально в памяти устройства, которую пользователь чаще всего использует. Обычно это информация о разных приложениях, если мы говорим об устройстве. Но в каждом браузере организовано веб-кэширование. Это процесс сохранения информации внутри браузера о посещенных веб-сайтах. Благодаря этому процесс у б раузеру не нужно постоянно обращаться к серверу о часто посещаемом веб-ресурсе, что экономит время пользователя.
Однако размер кэша не безграничен. Кэшированные данные занимают память, а это значит, что если не ставить ограничения на объем кэша и не проводить периодическую «чистку», тогда есть риск, что память переполнится. Переполнение памяти грозит аварийным завершением работы устройства или программы.
Кэширование — что это?
Кэширование — это технология сохранения копии информации в локальной памяти. Этот процесс часто связан с информацией, которую создавать повторно дорого или долго. Извлечение такой информации непосредственно из памяти устройства дешевле и быстрее.
общие кэшированные данные веб-сервера — обычно это информация сразу для нескольких пользователей;
кэшированные данные сети доставки информации — это также информация сразу о нескольких пользователях;
кэширование интернет-провайдера — это также кэш сразу о нескольких пользователях;
кэшированные данные устройства — это информация о запускаемых программах;
кэширование веб-браузера — информация о посещенных веб-страницах.
Каждый отдельный пользователь имеет влияние только на последние два уровня кэширования: кэш устройства и веб-браузера.
Что такое кэшированные данные и их актуальность
Кэшированные данные — это некая сохраненная информация. Однако не сложно догадаться, что такая информация устаревает, потому что кэшированный ресурс постоянно изменяется. Но для пользователя важно получать «свежую» информацию. Чтобы поддерживать актуальность к э ша, важно постоянно его обновлять.
Кэширование и его преимущества
Для разных уровней кэшировани я э то т процесс несет свои преимущества. Например:
Повышает производительность. Так как кэширование происходит на разных уровнях, это означает, что нагрузка на обслуживани е пользователя плавно распределяется. В конечном счет е р аспределение нагрузки улучшает общую производительность.
Оставляет контент доступным. В случае коротких сбоев в сет и к эшированные данные остаются доступными для пользователя.
Стратегии кэширования
Идеальный интернет — это если можно было бы закэшировать все веб-ресурсы максимально близко к пользователям. Однак о с технической сторон ы э то не представляется возможным, поэтому стратегию кэширования приходится балансировать между меняющимся контентом и временем кэша.
Нет единой стратегии кэширования. Для каждого отдельного ресурса этот процесс будет иметь собственное значение. Важно помнить, что при создании кэша нужно соблюдать баланс. Поэтому нужно брать во внимание, что на каждом веб-ресурсе будут:
компоненты, которые можно надолго кэшировать;
компоненты, у которых срок кэширования будет коротким;
компоненты, которые нельзя кэшировать.
Заключение
Кэширование — это способ быстрее показать нужный контент для пользователя, увеличить производительность, сократить расходы на обслуживание компонентов сайта и др. При этом не нужно думать, что кэшированные данные — это волшебная палочка для веб-ресурса. Кэширование — это еще один инструмент, чтобы сделать контент и пользователя «ближе».
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
кэшировать отчет (диспетчер отчетов)
Один из способов повышения производительности состоит в настройке свойств кэширования для отчета. При кэшировании отчета копия отчета, подготовленного для хранения, сохраняется на короткий промежуток времени. Первый пользователь, запросивший этот отчет, должен ожидать, пока не закончится вся обработка, прежде чем сможет просмотреть отчет. Последующие пользователи, запрашивающие тот же отчет в пределах времени кэширования, могут сразу же просмотреть его, поскольку обработка уже выполнена.
Существуют ограничения на типы отчетов, которые можно кэшировать. Например, отчет не может быть кэширован, если выходные данные отчета зависят от идентификатора пользователя или если данные получаются с помощью токена безопасности пользователя, запросившего отчет. Дополнительные сведения см. в разделе Кэширование отчетов (службы SSRS), это был единственный способ предварительной загрузки кэша.
Назначение момента для истечения срока действия кэшированного отчета
В раскрывающемся меню выберите Управление.
В левом окне щелкните Параметры обработки.
На этой странице выберите Всегда запускать этот отчет с самыми последними данными.
Выберите один из режимов кэширования и настройте истечение срока действия:
Чтобы срок действия кэшированной копии истек через определенное время, щелкните Кэшировать временную копию отчета. Срок действия копии отчета заканчивается через несколько минут. Введите срок действия отчета (в минутах).
Чтобы срок действия кэшированной копии истек в соответствии с расписанием, выберите Кэшировать временную копию отчета. Срок действия копии отчета истекает в соответствии со следующим расписанием. Щелкните Настроитьили выберите общее расписание для управления истечением срока действия отчета.
кэшировать общий набор данных
Один из способов повышения производительности состоит в настройке свойств кэширования общего набора данных. При кэшировании общего набора данных копия результатов запроса сохраняется на указанный период времени. Первый пользователь, запрашивающий отчет, в котором используется общий набор данных, должен будет дождаться получения результатов запроса и завершения всех процессов обработки до просмотра отчета. Производительность работы последующих пользователей, запрашивающих тот же отчет в пределах времени кэширования, будет значительно повышена, поскольку запрос и обработка уже выполнены. Также можно указать расписание обновления кэша для выполнения запроса и кэширования результатов до истечения указанного периода кэширования.
Пользователи, выполняющие отчеты на основе общих наборов данных или планов обновления кэша, создают кэш запроса, и в обоих случаях доступность кэша зависит от параметров периода истечения кэша.
Существуют ограничения на типы общих наборов, которые можно кэшировать. Например, результаты запроса нельзя кэшировать, если данные зависят от идентификатора пользователя или если данные получаются с помощью токена безопасности пользователя, запросившего отчет. Дополнительные сведения см. в разделах Общие наборы данных в кэше (службы SSRS) и Кэширование отчетов (службы SSRS).
Назначение момента для истечения срока действия кэшированного отчета
В диспетчере отчетов перейдите к общему набору данных, для которого необходимо задать свойства кэширования, наведите на него курсор мыши и щелкните стрелку раскрывающегося списка.
В раскрывающемся меню выберите Управление.
В левом окне перейдите на вкладку Кэширование.
При возникновении ошибки Не сохранены учетные данные, используемые для выполнения общего набора данных параметры кэширования для общего набора данных будут отключены. Необходимо изменить источник данных, хранящий учетные данные, или изменить общий набор данных для использования другого источника данных, хранящего учетные данные.
Выберите Кэширование общего набора данных.
Установите для параметра истечения срока действия кэша значение 30 минут. Также можно выбрать истечения срока действия кэша по указанному расписанию.
Обзор кэширования
Кэширование помогает значительно повысить производительность приложений и снизить затраты, независимо от масштаба
Что такое кэширование?
В сфере вычислительной обработки данных кэш – это высокоскоростной уровень хранения, на котором требуемый набор данных, как правило, временного характера. Доступ к данным на этом уровне осуществляется значительно быстрее, чем к основному месту их хранения. С помощью кэширования становится возможным эффективное повторное использование ранее полученных или вычисленных данных.
Как работает кэширование?
Данные в кэше обычно хранятся на устройстве с быстрым доступом, таком как ОЗУ (оперативное запоминающее устройство), и могут использоваться совместно с программными компонентами. Основная функция кэша – ускорение процесса извлечения данных. Он избавляет от необходимости обращаться к менее скоростному базовому уровню хранения.
Небольшой объем памяти кэша компенсируется высокой скоростью доступа. В кэше обычно хранится только требуемый набор данных, причем временно, в отличие от баз данных, где данные обычно хранятся полностью и постоянно.
Обзор кэширования
ОЗУ и работающие в памяти сервисы. Поскольку ОЗУ и работающие в памяти сервисы обеспечивают высокие показатели скорости обработки запросов, или IOPS (количество операций ввода-вывода в секунду), кэширование повышает скорость извлечения данных и сокращает расходы при работе в больших масштабах. Чтобы обеспечить аналогичный масштаб работы с помощью традиционных баз данных и оборудования на базе жестких дисков, требуются дополнительные ресурсы. Использование этих ресурсов приводит к повышению расходов, но все равно не позволяет достигнуть такой низкой задержки, какую обеспечивает кэш в памяти.
Области применения. Кэш используется на разных технологических уровнях, включая операционные системы, сетевые уровни, в том числе сети доставки контента (CDN) и DNS, интернет-приложения и базы данных. С помощью кэширования можно значительно сократить задержки и повысить производительность операций ввода-вывода в секунду для многих рабочих нагрузок приложений с большой нагрузкой на чтение, например порталов для вопросов и ответов, игровых ресурсов, порталов для распространения мультимедиа и социальных сетей. Кэшировать можно результаты запросов к базам данных, вычислений, которые требовательны к ресурсам, запросы к API и ответы на них, а также веб-артефакты, например файлы HTML, JavaScript и изображений. Рабочие нагрузки, требующие больших вычислительных мощностей для обработки наборов данных, например сервисы рекомендаций и высокопроизводительное вычислительное моделирование, тоже могут эффективно использовать уровень данных в памяти в качестве кэша. В этих приложениях можно обращаться к очень большим наборам данных в режиме реального времени через кластеры машин, которые охватывают сотни узлов. Управление этими данными в дисковом хранилище является узким местом таких приложений из-за низкой скорости работы базового оборудования.
Шаблоны проектирования. В среде распределенных вычислений выделенный уровень кэширования позволяет системам и приложениям работать независимо от кэша. При этом их жизненные циклы не влияют на кэш. Кэш служит центральным уровнем, к которому могут обращаться различные несвязанные между собой системы. Он имеет собственный жизненный цикл и архитектурную топологию. Это особенно важно для систем, в которых узлы приложений можно динамически масштабировать в обе стороны. Если кэш находится на том же узле, что и приложение или системы, которые им пользуются, масштабирование может разрушить целостность кэша. Кроме того, если используются локальные кэши, это дает преимущества только локальным приложениям, которые пользуются данными. В распределенной среде кэша данные могут охватывать множество серверов кэширования и находиться в центральном расположении, удобном для всех потребителей данных.
Рекомендации по кэшированию. При реализации уровня кэша необходимо принимать во внимание достоверность кэшируемых данных. Эффективный кэш обеспечивает высокую частоту попаданий, то есть наличия в кэше запрашиваемых данных. Промах кэша происходит, когда запрашиваемых данных в кэше нет. Для удаления из кэша неактуальных данных применяются такие механизмы, как TTL (время жизни). Следует также понимать, требуется ли для среды кэширования высокая доступность. Если она необходима, можно использовать сервисы в памяти, такие как Redis. В ряде случаев уровень в памяти можно использовать как отдельный уровень хранения данных, в отличие от кэширования из основного хранилища. Чтобы решить, подходит ли такой вариант, необходимо определить для данных в сервисе в памяти соответствующие значения RTO (требуемое время восстановления, то есть сколько времени требуется системе на восстановление после сбоя) и RPO (требуемая точка восстановления, то есть последняя восстанавливаемая точка или транзакция). Для соответствия большинству требований RTO и RPO можно применять характеристики и проектные стратегии разных сервисов в памяти.
Уровень | Клиентские | DNS | Интернет | Приложение | База данных |
Пример использования | Определение IP-адреса для домена | Ускорение получения веб-контента от серверов веб-приложений Управление веб-сеансами (на стороне сервера) | Повышение производительности приложений и ускорение доступа к данным | Сокращение задержек, связанных с запросами к базе данных | |
Технологии | Управление кэшированием с помощью HTTP-заголовков (браузеры) | Серверы DNS | Управление кэшированием с помощью HTTP-заголовков, CDN, обратные прокси-серверы, веб-ускорители, хранилища пар «ключ – значение» | Хранилища пар «ключ – значение», локальные кэши | Буферы баз данных, хранилища пар «ключ – значение» |
Решения | Для браузеров | Amazon Route 53 | Amazon CloudFront, ElastiCache для Redis, ElastiCache для Memcached, решения партнеров | Инфраструктуры приложений, ElastiCache для Redis, ElastiCache для Memcached, решения партнеров | ElastiCache для Redis, ElastiCache для Memcached |
Кэширование с помощью Amazon ElastiCache
Веб-сервис Amazon ElastiCache упрощает развертывание, эксплуатацию и масштабирование в облаке хранилища или кэша в памяти. Сервис повышает производительность интернет-приложений, позволяя получать информацию из быстрых управляемых хранилищ данных, размещенных в памяти, а не только из баз данных, размещенных на дисках и работающих не так быстро. Информацию о том, как реализовать эффективную стратегию кэширования, см. в этом техническом описании по кэшированию в памяти.
Преимущества кэширования
Повышение производительности приложений
Поскольку память работает в разы быстрее диска (магнитного или SSD), чтение данных из кэша в памяти производится крайне быстро (за доли миллисекунды). Это значительно ускоряет доступ к данным и повышает общую производительность приложения.
Сокращение затрат на базы данных
Один инстанс кэша может обрабатывать тысячи операций ввода-вывода в секунду, потенциально заменяя несколько инстансов базы данных, что в результате дает снижение общих затрат. Это особенно важно, если плата взимается за пропускную способность базы данных. В таких случаях можно снизить затраты на десятки процентов.
Снижение нагрузки на серверную часть
Благодаря освобождению серверной базы данных от значительной части нагрузки на чтение, которая направляется на уровень памяти, кэширование может сократить нагрузку на базу данных и защитить ее от снижения производительности под нагрузкой и даже от сбоев при пиковых нагрузках.
Прогнозируемая производительность
Общей проблемой современных приложений является обработка пиков в использовании приложений. Примерами могут служить социальные сети во время Суперкубка или в день выборов, веб-сайты электронной коммерции в Черную пятницу и т. д. Повышенная нагрузка на базу данных приводит к повышению задержек при получении данных, и общая производительность приложения становится непредсказуемой. Эту проблему можно решить благодаря использованию кэша в памяти с высокой пропускной способностью.
Устранение проблемных мест в базах данных
Во многих приложениях небольшое подмножество данных, например профиль знаменитости или популярный продукт, может оказаться намного более востребованным, чем остальные данные. Это приводит к появлению проблемных мест в базе данных и требует избыточного выделения ее ресурсов, чтобы удовлетворить спрос на пропускную способность, которой достаточно для получения наиболее часто используемых данных. За счет хранения общих ключей в кэше в памяти можно избавиться от необходимости избыточного выделения ресурсов и обеспечить быструю и предсказуемую работу системы при обращении к самым востребованным данным.
Повышение пропускной способности операций чтения (количество операций ввода-вывода в секунду)
Помимо сокращения задержек, системы в памяти обеспечивают намного более высокую скорость выполнения запросов (количество операций ввода-вывода в секунду) по сравнению с базами данных на диске. Один инстанс, который используется как распределенный дополнительный кэш, может обслуживать сотни тысяч запросов в секунду.
Кэширование отчетов (службы SSRS)
Сервер отчетов может кэшировать копию обработанного отчета и вернуть эту копию при открытии отчета пользователем. Единственным свидетельством того, что отчет является копией сохраненного в кэш отчета, являются дата и время выполнения отчета. Если дата или время не являются текущими, и отчет представляет собой моментальный снимок, то отчет был извлечен из кэша.
Кэширование может сократить время, необходимое для поиска отчета, если отчет большого размера или к нему часто обращаются. Если сервер перезагружается, то все кэшируемые экземпляры восстанавливаются при восстановлении подключения к сети веб-службы сервера отчетов.
Кэширование — технология улучшения производительности. Содержимое кэша энергозависимо и может измениться при добавлении, замене или удалении отчетов. Если требуется более прогнозируемая стратегия кэширования, то необходимо создать моментальный снимок отчета. Дополнительные сведения см. в разделе Установка свойств обработки отчетов.
Службы Reporting Services хранят временные файлы в базе данных, что обеспечивает поддержку пользовательских сеансов и обработку отчетов. Эти файлы кэшируются для внутреннего использования и поддерживают целостность обозреваемых объектов в течение одного сеанса браузера. Дополнительные сведения о кэшировании временных файлов для внутреннего использования см. в разделе База данных сервера отчетов (службы Reporting Services в собственном режиме).
Кэшированные экземпляры
Кэшируемый экземпляр отчета основан на промежуточном формате отчета. Сервер отчетов в целом кэширует только один экземпляр отчета на основе его имени. Однако если отчет может содержать данные, зависящие от параметров запроса, то могут кэшироваться несколько версий отчета в любое данное время. Например, предположим, что имеется параметризованный отчет, который рассматривает код области в качестве значения параметра. Если у четырех различных пользователей имеются четыре уникальных кода области, то создаются четыре кэшированных копии.
Первый пользователь, который выполняет отчет с уникальным кодом области, создает кэшируемый отчет, который содержит данные для той области. Последующие пользователи, которые запрашивают отчет, используя тот же самый код области, получают его кэшированную копию.
Не все отчеты могут кэшироваться. Если отчет содержит данные, зависимые от пользователей, запрашивает у пользователей учетные данные или использует проверку подлинности Windows, то отчет не может быть кэширован.
Обновление кэша
Кэшированный отчет заменяется более новой версией, когда пользователь выбирает отчет, срок кэшированной копии которого истек. Отчеты, которые настроены для выполнения в виде кэшируемых экземпляров, удаляются из кэша через промежутки времени, определенные в параметрах настройки истечения срока действия. Можно установить срок действия отчета в минутах или до определенного времени, в соответствии с требованием срока предоставления данных. Если не используется API-интерфейс SOAP, то напрямую удалить отчеты из кэша невозможно.
Чтобы настроить срок действия кэша, можно использовать общее расписание или расписание отчета. Если используется общее расписание и его действие приостанавливается, то срок кэширования не истекает, пока расписание приостановлено. Если общее расписание впоследствии удаляется, копия параметров настройки расписания сохраняется в виде расписания отчета.
Если срок расписания истекает или если ядро планирования недоступно на дату истечения срока хранения кэша, то сервер отчетов выполняет активный отчет до момента продолжения выполнения расписания (либо путем изменения конечной даты расписания, либо запуском службы планирования).
Предварительная загрузка кэша
Для улучшения работы сервера можно осуществить предварительную загрузку кэша. Предварительную загрузку коллекции экземпляров параметризованных отчетов в кэш можно выполнить двумя способами.
Создание плана обновления кэша. При создании плана обновления можно указать расписание для одного отчета или общее расписание.
Создание управляемой данными подписки в режиме «Отсутствующий поставщик доставки». При установке параметра «Отсутствующий поставщик доставки» в качестве метода доставки подписки сервер отчетов рассматривает базу данных сервера отчетов как адресат доставки и использует специальный модуль подготовки, называемый пустым модулем подготовки отчетов. В отличие от других модулей доставки вариант «Отсутствующий поставщик доставки» не имеет параметров доставки, которые можно настраивать через определение подписки.
Кэширование отчета особенно полезно в тех случаях, когда необходимо закэшировать несколько экземпляров параметризованного отчета, где для получения различных экземпляров используются различные значения параметра. Обратите внимание на то, что можно указать только те параметры отчета, которые основаны на запросе.
Если задано расписание или создание управляемой данными подписки, то необходимо запланировать доставки отчета в кэш. Для доставки в кэш новых копий необходимо истечение срока действия старых копий. Поэтому необходимо установить конфигурацию свойств выполнения отчета, включающую параметры настроек срока истечения кэша. Установка срока истечения должна соответствовать определяемому вами расписанию подписки. Например, если создается подписка, которая выполняется каждую ночь, то срок кэша должен также заканчиваться каждую ночь до момента выполнения подписки. Если свойства выполнения не включают в себя сроки истечения, то более новые доставки не будут обрабатываться. Дополнительные сведения о планах обновления кэша см. в разделе Расписания. Дополнительные сведения об установке свойств см. в разделе Установка свойств обработки отчетов. Дополнительные сведения об использовании управляемых данными подписок см. в разделе Подписки, управляемые данными.
Условия, вызывающие истечение срока действия кэша
Закэшированный отчет становится недействительным в результате следующих событий: изменение определения отчета, изменение параметров отчета, изменение учетных данных источника данных или изменение параметров выполнения отчета. Если удаляется отчет, сохраненный в кэше, то его версия в кэше также удаляется.
Если отчет не может быть по какой-то причине передан для обработки из экземпляра, хранящегося в кэше (например, если значения параметра отличаются от используемых для создания кэшированного отчета), то сервер отчетов повторно запускает отчет.