Welcome to TechNet Blogs Sign in | Join | Help

Разгоняем Sharepoint до скорости Highload интернет сайта

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

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

·         Во-первых можно включать механизмы кеширования страниц Sharepoint через веб интерфейс

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

·         Существует BLOB cache и сжатие средствами IIS

·         Необходимо делать оптимизацию страниц и мастер страниц, то есть отключать core.js и core.css там, где они не нужны, убирать ненужные элементы управления и т.д. Помещать ваши собственные сборки в GAC и обязательно подписывать их. Использовать <SharePointWebControls:ScriptLink runat="server"/> и   <SharePoint:CssLink ID="CssLink1" runat="server" /> для подключения css и js вместо аналогов из html.

 Теперь давайте по-порядку.

Кэширование возвращаемой страницы (Output caching)

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

 

А теперь представим, что нам необходимо, чтобы при изменении какого-либо параметра в строке адреса (query string) страница бралась не из кэша, а отображалась и получала информацию заново. Этого можно достичь написав в поле Vary by Query String Parameters символ “*

 

Что делать, если на странице должны быть элементы управления с динамической информацией при этом вся остальная страница должна кэшироваться?  Нужно использовать Post-Cache Substitution control (http://www.nikhilk.net/PostCacheSubstitution.aspx)

Кэширование файлов (Blob cache)

Blob Cache помещает элементы SharePoint на диск на сервере. Опция отключена. Для включения необходимо отредактировать web.config.

 

Кэширование запросов и объектов (Object cache)

Активирован по умолчанию. Используется для быстрого доступа к элементам:

·         Навигация и структура портала

·         Поля и элементы списков

·         Данные отображаемые в Content by Query web part

По умолчинию кэш объектов составлет 100MB и это можно изменить через веб-интерфейс.

 

Сжатие IIS

Добавить сжатие для JS и CSS можно выполнив в командной строке на сервере:

cscript adsutil.vbs set w3svc/filters/compression/gzip/hcfileextensions "htm" "html" "txt" "js" "css"

cscript adsutil.vbs set w3svc/filters/compression/deflate/hcfileextensions "htm" "html" "txt" "js" "css"

iisreset

IHttpModule и жесткая оптимизация

Совет для тех, кого просто бесит много лишнего текста в возвращаемой браузером странице потому что он эстет или гик (ненужное зачеркнуть), или стоит задача сделать страницы совсем маленькими и легкими. Для этого пишется IHttpModule в котором в методе Init страницы убирается из возвращаемого результата всё лишнее. Только убрать надо именно лишнее, т.е. то без чего ваша страница продолжит нормально работать ;)

Заключение

В подготовке статьи участвовали мозг, НЛО и материалы с MSDN:

Output Caching and Cache Profiles

Object Caching

Disk-based Caching for Binary Large Objects

Creating and Registering a Custom HTTP Module

Post-Cache Substitution

Published Tuesday, March 31, 2009 11:17 AM by tvsmetanina

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# re: Разгоняем Sharepoint до скорости Highload интернет сайта

После выполнения этой команды пишет "Не удалось найти запрошенный путь Ошибка при попытке получения объекта:w3svc/filters/compression/deflate"

Wednesday, April 15, 2009 5:20 AM by Keo_2001

# re: Разгоняем Sharepoint до скорости Highload интернет сайта

После выполнения этой команды

cscript adsutil.vbs set w3svc/filters/compression/deflate/hcfileextensions "htm" "html" "txt" "js" "css"

пишет "Не удалось найти запрошенный путь Ошибка при попытке получения объекта:w3svc/filters/compression/deflate"

Wednesday, April 15, 2009 5:21 AM by Keo_2001

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker