SharePoint для интернет-сайтов. Оптимизация

Это продолжение цикла статей, посвященного SharePoint для интернет-сайтов. Первые главы вы можете найти по следующим ссылкам:

В прошлой статье мы рассматривали работу с профилями пользователей.

В этой статье мы рассмотрим оптимизацию производительности SharePoint.

Измерение производительности

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

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

Рассмотрим некоторые инструменты для определения производительности веб-сайтов

  • www.webpagetest.org – полезный инструмент, позволяющий измерить производительность сайта, выбрав различные браузеры, в т.ч. мобильные. Для тестирования достаточно указать адрес вашего публичного веб-сайта, и после клика на кнопку Test увидеть результат (рис. 1)

    Рис. 1. Тестирование производительности http://sharepoint.microsoft.com
    При этом можно кликнуть на диаграмму, и посмотреть детальный отчет.

  • www.httpwatch.com – дополнение к IE и Firefox, анализирующее вашу работу с сайтом. В частности, анализируется производительность, события на страницах, ошибки и предупреждения.

Оптимизация производительности

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

Начнем рассматривать оптимизацию SharePoint 2010 с кэширования.

Кеширование

SharePoint 2010 предоставляет три типа кешей, позволяющих повысить скорость загрузки веб-страниц в браузере – кэш BLOB, кеш вывода страниц и кэш объектов.

Кэш BLOB

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

Профили кэша вывода страниц

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

Кэш объектов

Кэш объектов снижает объем трафика между веб-сервером и базой данных, сохраняя объекты (например списки и библиотеки, параметры веб-сайта и макеты страниц) в памяти Front End сервера. Для оптимизации использования кэша объектов можно указать размер кэша. Большой размер позволяет повысить производительность, однако увеличивает потребление ОЗУ. По умолчанию кэш объектов включен на уровне семейства веб-сайтов.

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

HTTP/IIS сжатие

В веб-сервере IIS есть возможность сжатия статических (HTML, CSS) и динамических файлов (ASPX), при этом нагрузка при сжатии ложится на ЦПУ.

При использовании сжатия можно снизить время загрузки страницы на 20-30%. При этом нужно иметь в виду, что сжатие картинок (PNG, JPEG, GIF) не даст сильного эффекта.

По умолчанию сжатие включается для каждого веб-приложения. При необходимости настройки сжатия можете почитать официальное руководство по настройке сжатия.

Веб-части

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

Ищите закрытые веб-части (веб-часть на странице есть, но она не отображается). Можно обнаружить, открыв страницу для редактирования, или просмотрев в SharePoint Designer.

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

Поиск узких места кода и контента

Если вы пишете свои решения с использованием объектоной модели SharePoint, проверяйте их на утечки памяти с помощью SharePoint Dispose Checker Tool. Также можно использовать различные профайлеры, например, dotTrace.

Не забывайте об ограничениях SharePoint, связанных с программным обеспечением. Для работы с большими списками можете посмотреть статью Управление большими списками в SharePoint 2010.

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

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

Рис. 2. Панель разработчика

SQL Server

Самой важной частью частью SharePoint является SQL Server. Как мы уже говорили выше, можно снизить нагрузку с SQL Server с использованием кэширования. Рассмотрим, какие еще операции могут снижать производительность SQL Server.

Отдельное внимание следует уделить базе данных поиска, которую рекомендуется устанавливать на отдельный сервер в ферме.

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

При работе с SQL Server уделяйте внимание IOPS ваших жестких дисков, а также конфигурации сети, которая может обеспечить приемлемую пропускную способность.

В заключительной статье про SharePoint 2010 для интернет-сайтов мы говорили об оптимизации производительности SharePoint 2010.

Ссылки

Best practices for SharePoint 2010

Обслуживание баз данных решений SharePoint 2010

Обслуживание баз данных решений SharePoint 2010 (продолжение)

Advertisements

SharePoint для интернет-сайтов. Оптимизация: 2 комментария

  1. А проверяли теорию про закрытые веб-части?
    Во-первых они не отображаются в режиме редактирования, отображаются скрытые, а не закрытые.
    Во-вторых для закрытых веб-частей вызывается только конструктор, который не делает ничего. Поэтому 99,99% веб частей будучи закрытыми никак не повлияют на быстродействие.

    • Закрытые веб-части (Closed Web Parts) можно посмотреть, добавив к адресу страницы «?content=1». Тут нужно учесть что, во-первых, на обработку закрытых веб-частей уходит место и ресурсы. Во-вторых, закрытые веб-части создаются при каждой загрузке страницы. Безусловно, они не рендерятся, но фактически во время пререндеринга WebPartManager создает все веб-части (закрытые и открытые) и проверяет, у каких веб-частей есть клиентские скрипты, которым необходима регистрация с помощью WPSC
      Ваша оценка верна только на низком количестве закрытых веб-частей.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s