Поделиться через


Производительность и емкость корпоративных управляемых метаданных в SharePoint Server 2010

 

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

Последнее изменение раздела: 2016-11-30

В данной статье приведены рекомендации по оптимизации размера и производительности службы управляемых метаданных в Microsoft SharePoint Server 2010. Кроме того, здесь приведены рекомендации по настройке службы и структурированию баз данных приложений-служб для достижения максимальной производительности.

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

Содержание:

  • Характеристики тестовой фермы

  • Результаты тестов и рекомендации

Общие сведения об управлении емкостью и выполнении планирования для SharePoint Server 2010 см. в статье Capacity management and sizing for SharePoint Server 2010.

Характеристики тестовой фермы

Набор данных

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

Базовый набор данных

Базовый набор данных содержит данные, приведенные в следующей таблице.

Данные Сведения

Группы наборов терминов

100

Наборы терминов

1000 (по 10 на группу)

Управляемые термины (сюда не входят корпоративные ключевые слова)

20 000 (по 20 на набор терминов)

Корпоративные ключевые слова

80 000

Общее число терминов (сюда входят управляемые термины и корпоративные ключевые слова)

100 000

Метки

100 000 (по 1 на термин)

Длина меток терминов

250 знаков на метку

Число терминов в базовом наборе данных показано на следующем графике.

Соотношение числа ключевых слов и числа терминов

В этих тестах соотношение ключевых слов к управляемым терминам всегда составляет 4:1 для всех наборов данных.

Рабочая нагрузка

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

  • Характеристики данных в службе

    • Длина меток терминов

    • Число терминов на банк терминов

    • Число меток терминов на банк терминов

  • Характеристики нагрузки службы

    • Набор операций чтения/записи
  • Размер кэша банка терминов

  • Число приложений-служб на сервер базы данных

  • Производительность заданий службы таймера ("Концентратор типов контента", "Подписчик на тип контента", "Обновление данных сайта корпоративных метаданных", "Планировщик обновления таксономии")

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

Тестовые сценарии

Для каждого из сценариев использовались следующие тесты:

  • Создание термина (тест записи)

    Этот тест создает термин в существующем наборе терминов.

  • Получение предложений (тест только для чтения)

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

  • Получение совпадений (тест только для чтения)

    Этот тест выполняет поиск терминов, совпадающих с указанной строкой, как при сравнении значений в поле ключевых слов или поле метаданных.

  • Получение дочерних терминов в наборе терминов с помощью постраничного просмотра (тест только для чтения)

    Этот тест получает дочерние термины в наборе терминов с помощью постраничного просмотра.

  • Проверка термина (тест только для чтения)

    Этот тест проверяет отдельный термин, как при проверке значений в поле ключевых слов или поле метаданных.

Тестовый набор

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

Тестирование Доля в наборе

Создание термина

0,125 %

Получение предложений

72,875 %

Получение совпадений

11 %

Получение дочерних терминов в наборе терминов с помощью постраничного просмотра

5 %

Проверка термина

11 %

"Получение предложений" — это наиболее часто используемая операция конечного пользователя. Именно поэтому она имеет такой вес в тестовом наборе.

Оборудование, параметры и топология

Тестовая ферма — это ферма из трех серверов, которая имеет отдельные серверы для каждого веб-сервера, сервера приложений и сервера базы данных.

Веб-сервер и сервер приложений

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

Компонент Конфигурация веб-сервера и сервера приложений

Процессоры

Два четырехъядерных процессора с тактовой частотой 2,33 ГГц каждый

ОЗУ

8 ГБ

Операционная система

Windows Server 2008, 64-разрядная версия

Размер системного диска

300 ГБ

Число сетевых адаптеров

Два

Скорость сетевого адаптера

1 гигабит в секунду

Проверка подлинности

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

Версия программного обеспечения

SharePoint Server 2010

Примечание

Результат может зависеть от используемой версии.

Службы, запускаемые локально

Центр администрирования

Входящая электронная почта Microsoft SharePoint Foundation

Веб-приложение Microsoft SharePoint Foundation

Служба таймера рабочих процессов Microsoft SharePoint Foundation Microsoft SharePoint Foundation

Сервер базы данных

Сервер базы данных был настроен, как показано в следующей таблице.

Компонент Конфигурация сервера базы данных

Процессоры

Четыре четырехъядерных процессора с тактовой частотой 3,19 ГГц каждый

ОЗУ

16 ГБ

Операционная система

Windows Server 2008, 64-разрядная версия

Хранилище

15 дисков по 300 ГБ со скоростью вращения шпинделя 15 000 об/мин

Число сетевых адаптеров

Два

Скорость сетевого адаптера

1 гигабит в секунду

Проверка подлинности

Windows NTLM

Версия программного обеспечения

Microsoft SQL Server 2008

Результаты тестов и рекомендации

В данном разделе описаны результаты тестов и приведены рекомендации по следующим характеристикам:

  • Характеристики данных

  • Характеристики загрузки

  • Производительность заданий таймера

Характеристики данных

Влияние длины меток терминов

Эти тесты были проведены для базового банка терминов, сначала с использованием длины меток терминов, равной 5 знакам, а затем — 250 знакам. В данном тесте операции записи представляют значительно большую долю от общего числа операций, чем в наборе операций чтения и записи, использовавшемся для большей части тестов.

Тестирование Доля в наборе

Создание термина

5 %

Получение предложений

70 %

Получение совпадений

10 %

Получение дочерних терминов в наборе терминов с помощью постраничного просмотра

5 %

Проверка термина

10 %

Результаты по количеству запросов в секунду для различных длин меток терминов приведены на следующем графике. Из этих данных видно, что длина меток терминов оказывает незначительное влияние на среднее количество запросов в секунду для обеих нагрузок.

RPS и длина метки

Загрузка ЦП и использование памяти приведены на следующих графиках.

Использование ЦП Использование ОЗУ

Как видно из результатов, влияние длины меток терминов на загрузку ЦП и использование памяти для веб-сервера и сервера приложений является незначительным. Однако при увеличении длины меток терминов нагрузка на сервер базы данных возрастает.

Выводы и рекомендации: длина меток терминов

Длина меток терминов не оказывает значительного влияния на производительность системы.

Число терминов на банк терминов

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

Когда в целях тестирования из банка терминов был удален набор терминов ключевых слов, разница между производительностью банков терминов объемом 100 000, 500 000 и 1 миллион терминов оказалась незначительной, как показано на двух следующих графиках.

RPS Использование ЦП

Когда система обрабатывает заданную тестовую нагрузку, время, требуемое на создание ключевого слова, значительно увеличивается, а число ключевых слов возрастает с 16 000 до 800 000. Эта тенденция отражена на следующем графике.

Время создания ключевого слова

Выводы и рекомендации: число терминов на банк терминов

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

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

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

Любой набор терминов, содержащий более 150 000 терминов в плоском списке, вызывает задержки и снижение производительности. Альтернативное решение заключается в использовании набора управляемых терминов, который обычно имеет структурированную коллекцию терминов. Дополнительные сведения о наборах терминов см. в статье Общие сведения об управляемых метаданных.

Распространенные ошибки

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

TimeoutException

При возникновении ошибки TimeoutException можно изменить значение времени ожидания в файле client.config или в файле web.config для службы управляемых метаданных. Файл client.config находится в папке %PROGRAMFILES%\Microsoft Office Servers\14.0\WebClients\Metadata. Файл web.config находится в папке %PROGRAMFILES%\Microsoft Office Servers\14.0\WebServices\Metadata. Существует четыре значения времени ожидания:

  • receiveTimeout — значение времени ожидания, задающее период времени, который предоставляется для выполнения операции получения.

  • sendTimeout — значение времени ожидания, задающее период времени, который предоставляется для выполнения операции отправки.

  • openTimeout — значение времени ожидания, задающее период времени, который предоставляется для выполнения операции открытия.

  • closeTimeout — значение времени ожидания, задающее период времени, который предоставляется для выполнения операции закрытия.

Эти значения времени ожидания определены в разделе customBinding. Можно увеличить значение времени ожидания для конкретной операции, завершающейся по тайм-ауту. Например, если время ожидания истекает при получении сообщений, необходимо увеличить только значение ReceiveTimeout.

Примечание

Существуют значения времени ожидания для HTTP и HTTPS, поэтом необходимо изменить значение времени ожидания для HTTP или HTTPS.

Дополнительные сведения о значениях времени ожидания см. в описании <customBinding> (https://go.microsoft.com/fwlink/?linkid=214213&clcid=0x419).

ThreadAbortException

При возникновении ошибки ThreadAbortException можно увеличить значение времени ожидания выполнения в файле web.config для конкретного веб-приложения. Файл web.config находится в папке %inetpub%\wwwroot\wss\VirtualDirectories\<номер порта приложения>. Например, если запрос выполнен для TaxonomyInternalService в веб-приложении, сначала найдите файл web.config для этого веб-приложения, а затем добавьте в узел конфигурации следующий код.

  <location path="_vti_bin/TaxonomyInternalService.json">
    <system.web>
      <httpRuntime executionTimeout="3600" />
    </system.web>
  </location>

Примечание

По умолчанию для executionTimeout задано значение, равное 360 секундам.

Число меток терминов на банк терминов

Этот тест был проведен для базового банка терминов, содержащего 100 000 терминов. Во время теста число меток для каждого термина было увеличено, как показано на следующем графике.

Среднее значение RPS

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

Среднее значение использования ЦП Среднее значение использования ОЗУ

Выводы и рекомендации: число меток терминов на банк терминов

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

Сводка: характеристики данных

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

  • Увеличение длины меток терминов до 250 знаков не оказывает значительного влияния на производительность банка терминов.

  • Увеличение среднего числа меток на термин до четырех не оказывает значительного влияния на производительность банка терминов.

  • Увеличение числа терминов до 1 миллиона не оказывает значительного влияния на производительность банка терминов.

  • Когда банк терминов содержит более 150 000 терминов в наборе терминов, использующем плоский список, добавление новых терминов в банк терминов может занимать много времени.

Характеристики загрузки

Влияние изменений набора операций чтения/записи

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

Тестирование Доля в нагрузке

Получение предложений

73 %

Создание элемента таксономии

0 %

Получение совпадений

11 %

Получение постраничных дочерних терминов в наборе терминов

5 %

Проверка термина

11 %

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

Среднее число терминов, создаваемых за минуту Среднее количество запросов в секунду

0

182

8,4

157

20

139

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

Среднее количество терминов, создаваемых RPS в минуту

Загрузка ЦП и использование памяти приведены на двух следующих графиках.

Среднее количество терминов, создаваемых ЦП в минуту Среднее количество терминов, создаваемых ОЗУ в минуту

Выводы и рекомендации: влияние изменений набора операций чтения/записи

Ожидается, что производительность банка терминов снизится при увеличении доли операций записи; операции записи устанавливают более исключительную блокировку для данных, что вызывает задержку выполнения операций чтения. На основании данных тестирования значительного снижения количества запросов в секунду не происходит до тех пор, пока среднее число создаваемых в минуту терминов не достигает 20. Однако средняя скорость создания терминов, равная 20 терминам в минуту, достаточно велика и обычно не достигается, особенно для сформировавшегося набора терминов. Сделав набор терминов доступным только для чтения, можно повысить производительность благодаря устранению операций записи.

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

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

На следующем графике показано, как изменяется объем памяти при увеличении числа терминов в кэше.

Размер кэша и число просмотренных терминов

Выводы и рекомендации: кэш банка терминов

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

Приложения-службы, используемые фермой

Этот тест показывает разницу в производительности между одним и двумя приложениями-службами управляемых метаданных, базы данных которых размещаются на одном сервере базы данных.

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

RPS для двух приложений-служб

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

Задержка предложения ключевых слов

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

Среднее значение использования ЦП Среднее значение использования ОЗУ

Выводы и рекомендации: приложения-службы, используемые фермой

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

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

Производительность заданий таймера

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

Задание таймера "Подписчик на тип контента"

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

  • Число семейств сайтов в веб-приложении

  • Число типов контента

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

Время синдикации и количество подключений сайта

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

Время синдикации и количество типов контента

Выводы и рекомендации: задание таймера "Подписчик на тип контента"

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

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

Совет

При попытке опубликовать очень большой тип контента может отображаться следующая ошибка:
Веб-исключение: запрос был прерван.
Причина этого заключается в том, что размер типа контента превышает максимальный размер запроса HTTP по умолчанию для приложения-службы, равный 4 МБ. Чтобы предотвратить возникновение этой ошибки, можно увеличить значение maximumRequestLength в файле web.config для этого приложения-службы.

Задание таймера "Планировщик обновления таксономии"

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

На следующем графике показано соотношение между числом семейств веб-сайтов и средним временем обновления одного термина в одном семействе веб-сайтов.

Среднее время обновления термина

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

Среднее время обновления термина в скрытом списке

Выводы и рекомендации: задание таймера "Планировщик обновления таксономии"

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

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