Рекомендации по коллекциям в Configuration Manager

Относится к Configuration Manager (Current Branch)

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

Используйте следующие рекомендации для коллекций в Configuration Manager.

Настройка периода обслуживания для обновлений

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

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

  • Максимальное время выполнения обновления программного обеспечения по умолчанию составляет 60 минут.
  • Когда Configuration Manager вычисляет, можно ли установить обновление, оно добавляет пять минут к максимальному времени выполнения для учета перезапуска.
  • Оставшаяся продолжительность периода обслуживания должна быть больше максимального времени выполнения обновления программного обеспечения плюс пять минут.

Избегайте частой оценки коллекции

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

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

Общие сведения о графе оценки коллекции

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

Ограничение добавочных обновлений

Включение добавочных обновлений для многих коллекций может привести к задержкам оценки. Лучше всего ограничить количество постепенно обновляемых коллекций до 200. Точное число зависит от:

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

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

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

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

Избегайте оценки больших деревьев из CAS

В Configuration Manager среде сайт центра администрирования (CAS) не оценивает членство в коллекции. Первичные сайты — это единственные сайты, которые оценивают коллекции. Вторичные сайты выступают в качестве прокси-серверов, которые используют только данные, реплицируемые с основного сайта.

Чтобы запросить обновление коллекции, cass отправляет запрос на каждый первичный сайт. Первичные сайты оценивают коллекцию и отправляют результаты обратно в CAS. Результаты оценки коллекции отображаются только после того, как все инструкции по оценке коллекции реплицируются на все сайты, все сайты оценивают все коллекции, а все данные возвращаются в CAS и объединяются.

На следующей схеме показан поток, когда CAS запрашивает обновление коллекции вручную:

Обновление коллекции вручную из cas-центра

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

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

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

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

Рассмотрите глубину сбора и перекрестную ссылку

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

Правила включения и исключения коллекций в Configuration Manager сделать ссылки на коллекции проще, чем написание пользовательского запроса WQL. Однако если использование коллекций включения и исключения приводит к высокой производительности, можно использовать метод WQL-запроса. Используйте следующие примеры запросов и замените идентификатор XYZ0003F коллекции идентификатором коллекции, которую необходимо включить или исключить.

Зафиксируйте следующие элементы:

Select * from SMS_R_System where SMS_R_System.ResourceId in (select ResourceID from SMS_CM_RES_COLL_XYZ0003F)

Исключить:

Select * from SMS_R_System where SMS_R_System.ResourceId not in (select ResourceID from SMS_CM_RES_COLL_XYZ0003F)

Использование CEViewer для мониторинга оценки коллекции

Вы можете использовать средство просмотра оценки коллекций (CEViewer), чтобы отслеживать, сколько коллекций оценивается и сколько времени требуется для обновления каждой коллекции. CEViewer находится в папке CD.Latest на сервере сайта.

Совет

Начиная с Configuration Manager версии 2010, эта функция встроена в консоль. Дополнительные сведения см. в статье Просмотр оценки коллекции.

Чтобы вручную выполнить аналогичную проверку с помощью SQL, можно использовать следующий запрос:

SELECT [t2].[CollectionName], [t2].[SiteID], [t2].[value] AS [Seconds], [t2].[LastIncrementalRefreshTime], [t2].[IncrementalMemberChanges] AS [IncChanges], [t2].[LastMemberChangeTime] AS [MemberChangeTime]
FROM (
    SELECT [t0].[CollectionName], [t0].[SiteID], DATEDIFF(Millisecond, [t1].[IncrementalEvaluationStartTime], [t1].[LastIncrementalRefreshTime]) * 0.001 AS [value], [t1].[LastIncrementalRefreshTime], [t1].[IncrementalMemberChanges], [t1].[LastMemberChangeTime], [t1].[IncrementalEvaluationStartTime], v1.[RefreshType]
    FROM [dbo].[Collections_G] AS [t0]
    INNER JOIN [dbo].[Collections_L] AS [t1] ON [t0].[CollectionID] = [t1].[CollectionID]
    inner join v_Collection v1 on [t0].[siteid] = v1.CollectionID
    ) AS [t2]
WHERE ([t2].[IncrementalEvaluationStartTime] IS NOT NULL) AND ([t2].[LastIncrementalRefreshTime] IS NOT NULL) and (refreshtype='4' or refreshtype='6')
ORDER BY [t2].[value] DESC