Кэширование вывода и профили кэша

Дата последнего изменения: 27 сентября 2010 г.

Применимо к: SharePoint Server 2010

В этой статье
Положительные и отрицательные стороны кэширования вывода
Профили кэша
Процедуры

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

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

Положительные и отрицательные стороны кэширования вывода

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

  • Каждый эквивалентный класс контента (такой как страница или элемент в странице) после своей первоначальной визуализации обеспечивает более быстрый отклик и, соответственно, уменьшает задержку.

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

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

  • Для каждой страницы, копия которой находится в кэше вывода, серверу не нужно выполнять следующие действия:

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

    • Повторно загружать и повторно визуализировать элементы управления.

    • Повторно отправлять запросы к источникам данных, используемых элементами управления.

Но перед принятием решения о реализации кэширования вывода следует также учесть и следующие моменты:

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

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

Профили кэша

SharePoint Server 2010 добавляет более точный механизм настройки кэширования вывода (по сравнению с исходно доступным в ASP.NET 2.0). SharePoint Server 2010 включает в себя профили кэша, представляющие собой параметры кэша в стиле списка, которые можно назвать и использовать для страниц, элементов страниц, типов контента и уровней масштаба в развертывании веб-сайтов.

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

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

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

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

ПримечаниеПримечание

Дополнительные сведения об этом способе создания профилей кэша см. в разделе Расширение возможностей кэширование с помощью обработчика события VaryByCustom. В нем описывается, как создать обработчик событий VaryByCustom, как изменить профиль кэша, чтобы включить настраиваемые строковые параметры, передаваемые в VaryByCustom, и как добавить требуемый код в файл global.asax.

Процедуры

Включение кэша вывода для семейства веб-сайтов

  1. Перейдите в корневой веб-сайт семейства сайтов. В меню Действия сайта выберите пункт Параметры сайта.

  2. В разделе Администрирование семейства веб-сайтов выберите Кэш вывода семейства веб-сайтов.

  3. Чтобы включить кэш вывода для этого семейства веб-сайтов, выберите Включить кэш вывода.

  4. Выберите в списке Профиль кэша для анонимных пользователей профиль кэша для анонимных пользователей. Этот профиль применяется при обращении анонимных пользователей к веб-сайту из этого семейства веб-сайтов.

  5. Выберите в списке Профиль кэша для зарегистрированных пользователей профиль кэша для зарегистрированных пользователей. Этот профиль применяется при обращении зарегистрированных пользователей к веб-сайту из этого семейства веб-сайтов.

  6. Выберите параметры Политика кэша вывода страниц:

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

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

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

  8. Нажмите кнопку ОК.

Включение кэша вывода для веб-сайта

  1. Перейдите в корневой веб-сайт семейства сайтов. В меню Действия сайта выберите пункт Параметры сайта.

  2. В разделе Администрирование сайта выберите Кэш вывода сайта.

  3. Выберите значение параметра Профиль кэша для анонимных пользователей:

    • Если нужно, чтобы профиль кэша наследовался, выберите Наследовать.

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

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

  5. Нажмите кнопку ОК.

Создание нового профиля кэша

  1. Перейдите в корневой веб-сайт семейства сайтов. В меню Действия сайта выберите пункт Параметры сайта.

  2. В разделе Администрирование семейства веб-сайтов выберите Профили кэша семейства веб-сайтов.

  3. Нажмите кнопку Создать.

  4. Определите и создайте новый профиль кэша.

    Таблица 1. Описание данных профиля кэша

    Данные

    Описание

    Название

    Обязательный атрибут. Системное имя этого профиля кэша.

    Отображаемое имя

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

    Отображать описание

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

    Выполнять проверку ACL

    Выберите, чтобы все элементы в кэше использовались в соответствии с ролями безопасности.

    Включено

    Выберите, если нужно, чтобы кэширование использовалось.

    Длительность

    Число секунд, в течение которого доступна кэшированная версия.

    Проверять на изменения

    Установите этот флажок, чтобы при каждом запросе страницы проверять, изменился ли веб-сайт, и очищать кэш при изменении веб-сайта.

    Снимите его, если нужно увеличить быстродействие. Если этот флажок не установлен, система не проверяет, обновились ли веб-сайты, в течение количества секунд, заданного параметром "Длительность".

    В зависимости от настраиваемого параметра

    Задайте значение в соответствии с описанием в документации по методу HttpCachePolicy.SetVaryByCustom ASP.NET.

    В зависимости от заголовка HTTP

    Задайте значение в соответствии с описанием в документации по свойству HttpCachePolicy.VaryByHeaders ASP.NET.

    В зависимости от параметров строки запроса

    Задайте значение в соответствии с описанием в документации по свойству HttpCachePolicy.VaryByParams ASP.NET.

    В зависимости от прав пользователя

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

    Возможность кэширования

    Выберите значение в раскрывающемся списке. Возможные варианты: NoCache, Private, Server, ServerAndNoCache, Public и ServerAndPrivate. Дополнительные сведения см. в разделе о перечислении HttpCacheability ASP.NET.

    Безопасно для использования с проверкой подлинности

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

    Разрешить авторам просматривать кэшированный контент

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

См. также

Концепции

Общие сведения о настраиваемом кэшировании

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

Дисковое кэширование для больших двоичных объектов

Другие ресурсы

ASP.NET Page Output Caching, Part 1