Управление службой распределенного кэша в SharePoint Server

ОБЛАСТЬ ПРИМЕНЕНИЯ:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint в Microsoft 365

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

Важно!

Управление службой распределенного кэша, не соответствующее описанным в этой статье процедурам, может привести к нерабочему состоянию фермы или неустранимым ошибкам. В крайних случаях может потребоваться перестройка фермы серверов. Для SharePoint Server 2019, 2016 и 2013 распределенный кэш зависит от Windows Server AppFabric в качестве необходимого условия. Не управляйте службой кэша AppFabric в окне Службы меню Администрирование в панели управления. Не используйте приложения из папки AppFabric для Windows Server в меню Пуск. Добавление средств защиты для AppFabric с распределенным кэшем SharePoint не поддерживается. Для SharePoint Server по подписке отдельный продукт Windows Server AppFabric был нерекомендуем, и технология теперь внутренне интегрирована в SharePoint.

Важно!

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

Список командлетов PowerShell для службы распределенного кэша

Следующие командлеты PowerShell теперь доступны в SharePoint Server PowerShell.

Командлет SharePoint Server по подписке Командлет APP Fabric Описание
New-SPCache New-Cache Создает новый именованный кэш при запуске кластера.
Get-SPCache Get-Cache Выводит список всех кэшей и регионов в кластере, а также узел кэша, где находится каждый регион. Без каких-либо параметров возвращаются все кэши кластера и их сведения о регионе узла. Если указаны параметры Hostname и CachePort, кэши и сведения о регионе возвращаются только для указанного узла.
Get-SPCacheStatistics Get-CacheStatistics Возвращает статистику для кэша или для узла кэша.
Get-SPCacheHost Get-CacheHost Выводит список всех служб узла кэша, которые являются членами кластера кэша.
Start-SPCacheCluster Start-CacheCluster Запускает службу кэширования на всех узлах кэша в кластере. Ведущие узлы запускаются первыми.
Stop-SPCacheCluster Stop-CacheCluster Останавливает службы кэширования на всех узлах кэша в кластере.
Import-SPCacheClusterConfig Import-CacheClusterConfig Импортирует сведения о конфигурации кластера кэша из XML-файла.
Export-SPCacheClusterConfig Export-CacheClusterConfig Экспортирует конфигурацию кластера кэша в XML-файл.
Get-SPCacheClusterHealth Get-CacheClusterHealth Возвращает статистику работоспособности для всех именованных кэшей в кластере кэша. Сюда входят те, которые еще не были выделены.
Use-SPCacheCluster Use-CacheCluster Задает контекст сеанса PowerShell для определенного кластера кэша.
Get-SPCacheHostConfig Get-CacheHostConfig Возвращает сведения о конфигурации узла кэша в кластере кэша.
Get-SPCacheClusterInfo Get-CacheClusterInfo Возвращает сведения о кластере кэша в ферме.
Set-SPCacheClusterSecurity Set-CacheClusterSecurity Задает свойства безопасности кластера кэша.

Запуск и остановка службы распределенного кэша

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

  • Изменение конфигурации сервера фермы по умолчанию во время установки. Во время установки служба распределенного кэша запускается на всех серверах SharePoint. Администратору может понадобиться остановить службу распределенного кэша на некоторых серверах фермы.

  • Обновление сервера, когда в ферме SharePoint Server имеется только один сервер распределенного кэша.

Остановка службы кэша приводит к частичной потере данных. Кэш каналов зависит от службы распределенного кэша. Теги и действия с документами сохраняются только в кэше каналов. Теги и действия с документами не сохраняются в базах данных контента. При остановке службы распределенного кэша теги и действия с документами теряются. После запуска службы распределенного кэша задание таймера повторно заполняет кэш каналов. Один из способов сохранения тегов и действий с документами описан в разделе Безопасное отключение службы распределенного кэша с помощью скрипта PowerShell далее в этой статье. При использовании этого способа все данные кэша перемещаются на другой сервер перед остановкой службы распределенного кэша.

Примечание.

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

Запуск и остановка службы распределенного кэша с помощью центра администрирования

  1. В центре Центр администрирования щелкните Управление приложениями.

  2. В разделе Приложения-службы щелкните Управление службами на сервере.

  3. На странице Службы на сервере найдите службу Распределенный кэш.

  4. Если служба распределенного кэша запущена и ее нужно остановить, в разделе Действие выберите команду Остановить. Если служба распределенного кэша остановлена и ее нужно запустить, в разделе Действие выберите команду Запустить.

Запуск службы распределенного кэша с помощью командной консоли SharePoint

В командной строке консоли SharePoint выполните следующую команду.

$instanceName ="SPDistributedCacheService Name=SPCache"
$serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
$serviceInstance.Provision()

Останов службы распределенного кэша с помощью командной консоли SharePoint

В командной строке консоли SharePoint выполните следующую команду.

$instanceName ="SPDistributedCacheService Name=SPCache"
$serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
$serviceInstance.Unprovision()

Изменение выделения памяти для службы распределенного кэша

При установке SharePoint Server выделяет службе распределенного кэша 10 % физической памяти сервера. Служба распределенного кэша использует половину выделенной памяти для хранения данных (этот объем памяти называется размером кэша), а вторую половину — для операций управления памятью. При увеличении размера кэшированных данных служба распределенного кэша использует все 10 % выделенной памяти.

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

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

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

    1. Определите общий объем физической памяти на сервере. В данном примере в качестве объема физической памяти сервера будет использоваться значение 16 ГБ.

    2. Зарезервируем 2 ГБ памяти для других процессов и служб, выполняемых на узле размещения кэша. Например, 16 ГБ - 2 ГБ = 14 ГБ. Эта оставшаяся память выделяется для службы распределенного кэша.

    3. Возьмем половину оставшейся памяти и преобразуем это значение в мегабайты. Например, 14 ГБ/2 = 7 ГБ или 7168 МБ. Это размер кэша службы распределенного кэша.

    4. Используйте следующую процедуру для изменения объема выделенной памяти.

Изменение выделения памяти для службы распределенного кэша

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

  1. (Необязательно) Чтобы проверить текущее выделение памяти для службы или сервера распределенного кэша, выполните в командной строке Командная консоль SharePoint следующую команду:

    Use-SPCacheCluster
    Get-SPCacheHostConfig -HostName $Env:ComputerName
    

    Где:

    • ComputerName это имя компьютера сервера, на котором выполняется командлет Командная консоль SharePoint.
  2. Остановите службу распределенного кэша на всех узлах размещения кэша. Чтобы остановить эту службу, перейдите в раздел Службы на сервере центра администрирования и выберите параметр Остановить для службы распределенного кэша на всех узлах размещения кэша в ферме.

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

    Update-SPDistributedCacheSize -CacheSizeInMB CacheSize
    

    Где:

    • CacheSize — это размер кэша в выделенной памяти в мегабайтах. В предыдущем примере для сервера с общим объемом памяти 16 ГБ было вычислено значение размера кэша 7168 МБ.
  4. Перезапустите службу распределенного кэша на всех узлах размещения кэша. Чтобы перезапустить эту службу, перейдите в раздел Службы на сервере центра администрирования и выберите параметр Запустить для службы распределенного кэша на всех узлах размещения кэша в ферме.

Добавление или удаление сервера в кластере распределенного кэша

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

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

Примечание.

Перед выполнением описанных ниже процедур убедитесь, что брандмауэр беспрепятственно пропускает входящий трафик ICMP (ICMPv4). Дополнительные сведения см. статье Рекомендации по конфигурации брандмауэра.

Добавление сервера в кластер кэша и запуск службы распределенного кэша с помощью командной консоли SharePoint

В командной строке консоли SharePoint выполните следующую команду.

Add-SPDistributedCacheServiceInstance

Удаление сервера из кластера кэша с помощью командной консоли SharePoint

В командной строке Командная консоль SharePoint выполните следующую команду.

Remove-SPDistributedCacheServiceInstance

Важно!

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

Безопасное отключение службы распределенного кэша с помощью скрипта PowerShell

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

Безопасное отключение службы распределенного кэша с помощью сценария PowerShell

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

Примечание.

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

Примечание.

В SharePoint Server по подписке не запускайте ps скрипт для корректного завершения работы. Вместо этого выполните команду Stop-SPDistributedCacheServiceInstance с -Graceful параметром , чтобы выполнить его.

  1. Убедитесь, что выполняются следующие минимальные требования:

  2. Скопируйте следующие объявления переменных и вставьте их в текстовый редактор, например "Блокнот". Задайте значения параметры для вашей организации. Сохраните файл и назовите его GracefulShutdown.ps1.

    Примечание.

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

    ## Settings you may want to change for your scenario ##
    $startTime = Get-Date
    $currentTime = $startTime
    $elapsedTime = $currentTime - $startTime
    $timeOut = 900
    Use-CacheCluster
    try
    {
        Write-Host "Shutting down distributed cache host."
     $hostInfo = Stop-CacheHost -Graceful -CachePort 22233 -ComputerName sp2016App.contoso.com
     while($elapsedTime.TotalSeconds -le $timeOut-and $hostInfo.Status -ne 'Down')
     {
         Write-Host "Host Status : [$($hostInfo.Status)]"
         Start-Sleep(5)
         $currentTime = Get-Date
         $elapsedTime = $currentTime - $startTime
         $hostInfo = Get-CacheHost -HostName SP2016app.contoso.com -CachePort 22233
     }
     Write-Host "Stopping distributed cache host was successful. Updating Service status in SharePoint."
     Stop-SPDistributedCacheServiceInstance
     Write-Host "To start service, please use Central Administration site."
    }
    catch [System.Exception]
    {
     Write-Host "Unable to stop cache host within 15 minutes." 
    }
    

    Где sp2016App.contoso.com — это доменное имя компьютера используемого сервера распределенного кэша.

  3. Откройте Командная консоль SharePoint.

  4. Перейдите к каталогу, в котором вы сохранили файл.

  5. В командной строке PowerShell введите следующую команду:

    ./GracefulShutdown.ps1
    

    Дополнительные сведения о скриптах и .ps1 файлах PowerShell см. в статье Выполнение скриптов Windows PowerShell.

Изменение учетной записи службы

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

Выберите службу, чтобы изменить учетную запись службы.

  1. Создайте управляемую учетную запись.

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

    $farm = Get-SPFarm
    $cacheService = $farm.Services | where {$_.Name -eq "SPCache"}
    $accnt = Get-SPManagedAccount -Identity domain_name\user_name
    $cacheService.ProcessIdentity.CurrentIdentityType = "SpecificUser"
    $cacheService.ProcessIdentity.ManagedAccount = $accnt
    $cacheService.ProcessIdentity.Update() 
    $cacheService.ProcessIdentity.Deploy()
    

    Где Domain_name\user_name — это доменное имя и имя пользователя управляемой учетной записи SharePoint.

Настройка службы распределенного кэша с помощью сценария PowerShell

Мониторинг

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

  1. %ЦП используется службой кэша.

  2. %время, затраченное на сборку мусора службой кэша.

  3. Всего промахов кэширования/с — большое значение может привести к снижению производительности приложения из-за невозможности извлечь данные из кэша. К возможным причинам относятся вытеснение и (или) окончание срока действия элементов в кэше.

  4. Общее число объектов — позволяет понять, сколько элементов в кэше. Значительное снижение количества объектов может означать вытеснение или истечение срока действия.

  5. Всего запросов клиентов/с — этот счетчик полезен, если вы знаете, какой объем нагрузки создается на серверах кэширования в приложении. Низкое значение здесь обычно означает некоторое узкое место за пределами сервера кэша (возможно, в приложении или сети), и, следовательно, на серверах кэша выполняется небольшая нагрузка.

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

  7. Всего исключений ошибок в секунду и всего исключений повторных попыток в секунду.

Параметр службы распределенного кэша MaxConnectionsToServer часто настраивается на основе числа процессоров, используемых в главном компьютере. Если, например, вы используете несколько ядер, а затем задаете для параметра MaxConnectionsToServer одинаковое количество ЦП, компьютер часто использует слишком много памяти и зависает. Подобные проблемы случаются при настройке параметров DistributedLogonTokenCache и DistributedViewStateCache. Значение по умолчанию — 20 мс, но часто исключения встречаются, когда кэширование маркера не выполняется в параметре 20 мс. Чтобы изменить параметры максимального числа подключений и таймаутов в SharePoint Server 2016 и SharePoint Server 2013, используйте приведенные ниже сценарии PowerShell.

Настройка службы распределенного кэша с помощью скрипта PowerShell

  1. Убедитесь, что выполняются следующие минимальные требования:

  2. Скопируйте следующие объявления переменных и вставьте их в текстовый редактор, например "Блокнот". Задайте значения параметры для вашей организации. Сохраните файл и назовите его MaxConnections.ps1.

    Примечание.

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

    скрипт PowerShell SharePoint Server по подписке и SharePoint Server 2019

    Add-PSSnapin Microsoft.Sharepoint.Powershell -ea 0
    
    #DistributedLogonTokenCache
    $DLTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache
    $DLTC.MaxConnectionsToServer = 1
    $DLTC.requestTimeout = "3000"
    $DLTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache $DLTC
    
    #DistributedViewStateCache
    $DVSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache
    $DVSC.MaxConnectionsToServer = 1
    $DVSC.requestTimeout = "3000"
    $DVSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache $DVSC
    
    #DistributedAccessCache
    $DAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache
    $DAC.MaxConnectionsToServer = 1
    $DAC.requestTimeout = "3000"
    $DAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache $DAC
    
    #DistributedActivityFeedCache
    $DAF = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache
    $DAF.MaxConnectionsToServer = 1
    $DAF.requestTimeout = "3000"
    $DAF.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache $DAF
    
    #DistributedActivityFeedLMTCache
    $DAFC = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache
    $DAFC.MaxConnectionsToServer = 1
    $DAFC.requestTimeout = "3000"
    $DAFC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache $DAFC
    
    #DistributedBouncerCache
    $DBC = Get-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache
    $DBC.MaxConnectionsToServer = 1
    $DBC.requestTimeout = "3000"
    $DBC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache $DBC
    
    #DistributedDefaultCache
    $DDC = Get-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache
    $DDC.MaxConnectionsToServer = 1
    $DDC.requestTimeout = "3000"
    $DDC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache $DDC
    
    #DistributedSearchCache
    $DSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache
    $DSC.MaxConnectionsToServer = 1
    $DSC.requestTimeout = "3000"
    $DSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache $DSC
    
    #DistributedSecurityTrimmingCache
    $DTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache
    $DTC.MaxConnectionsToServer = 1
    $DTC.requestTimeout = "3000"
    $DTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache $DTC
    
    #DistributedServerToAppServerAccessTokenCache
    $DSTAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache
    $DSTAC.MaxConnectionsToServer = 1
    $DSTAC.requestTimeout = "3000"
    $DSTAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache $DSTAC
    
    #DistributedFileLockThrottlerCache
    $DFLTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedFileLockThrottlerCache
    $DFLTC.MaxConnectionsToServer = 1
    $DFLTC.requestTimeout = "3000"
    $DFLTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedFileLockThrottlerCache $DFLTC
    
    #DistributedSharedWithUserCache
    $DSWUC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSharedWithUserCache
    $DSWUC.MaxConnectionsToServer = 1
    $DSWUC.requestTimeout = "3000"
    $DSWUC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSharedWithUserCache $DSWUC
    
    #DistributedUnifiedGroupsCache
    $DUGC = Get-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedGroupsCache
    $DUGC.MaxConnectionsToServer = 1
    $DUGC.requestTimeout = "3000"
    $DUGC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedGroupsCache $DUGC 
    
    #DistributedResourceTallyCache
    $DRTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedResourceTallyCache
    $DRTC.MaxConnectionsToServer = 1
    $DRTC.requestTimeout = "3000"
    $DRTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedResourceTallyCache $DRTC
    
    #DistributedHealthScoreCache
    $DHSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedHealthScoreCache
    $DHSC.MaxConnectionsToServer = 1
    $DHSC.requestTimeout = "3000"
    $DHSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedHealthScoreCache $DHSC  
    
    #DistributedDbLevelFailoverCache
    $DDBFC = Get-SPDistributedCacheClientSetting -ContainerType DistributedDbLevelFailoverCache
    $DDBFC.MaxConnectionsToServer = 1
    $DDBFC.requestTimeout = "3000"
    $DDBFC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedDbLevelFailoverCache $DDBFC
    
    #DistributedEdgeHeaderCache
    $DEHC = Get-SPDistributedCacheClientSetting -ContainerType DistributedEdgeHeaderCache
    $DEHC.MaxConnectionsToServer = 1
    $DEHC.requestTimeout = "3000"
    $DEHC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedEdgeHeaderCache $DEHC
    
    #DistributedFileStorePerformanceTraceCache
    $DFSPTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedFileStorePerformanceTraceCache
    $DFSPTC.MaxConnectionsToServer = 1
    $DFSPTC.requestTimeout = "3000"
    $DFSPTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedFileStorePerformanceTraceCache $DFSPTC
    
    #DistributedSPAbsBlobCache
    $DSPABSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSPAbsBlobCache
    $DSPABSC.MaxConnectionsToServer = 1
    $DSPABSC.requestTimeout = "3000"
    $DSPABSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSPAbsBlobCache $DSPABSC
    
    #DistributedSPCertificateValidatorCache
    $DSPCVC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSPCertificateValidatorCache
    $DSPCVC.MaxConnectionsToServer = 1
    $DSPCVC.requestTimeout = "3000"
    $DSPCVC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSPCertificateValidatorCache $DSPCVC
    
    #DistributedSPOAuthTokenCache
    $DSPOATC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSPOAuthTokenCache
    $DSPOATC.MaxConnectionsToServer = 1
    $DSPOATC.requestTimeout = "3000"
    $DSPOATC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSPOAuthTokenCache $DSPOATC
    
    #DistributedStopgapCache
    $DSGC = Get-SPDistributedCacheClientSetting -ContainerType DistributedStopgapCache
    $DSGC.MaxConnectionsToServer = 1
    $DSGC.requestTimeout = "3000"
    $DSGC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedStopgapCache $DSGC
    
    #DistributedUnifiedAppsCache
    $DUAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedAppsCache
    $DUAC.MaxConnectionsToServer = 1
    $DUAC.requestTimeout = "3000"
    $DUAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedAppsCache $DUAC
    
    #DistributedUnifiedAuditCache
    $DUAuC = Get-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedAuditCache
    $DUAuC.MaxConnectionsToServer = 1
    $DUAuC.requestTimeout = "3000"
    $DUAuC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedAuditCache $DUAuC
    

    Скрипт PowerShell для SharePoint Server 2016

    Add-PSSnapin Microsoft.Sharepoint.Powershell -ea 0
    
    #DistributedLogonTokenCache
    $DLTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache
    $DLTC.MaxConnectionsToServer = 1
    $DLTC.requestTimeout = "3000"
    $DLTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache $DLTC
    
    #DistributedViewStateCache
    $DVSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache
    $DVSC.MaxConnectionsToServer = 1
    $DVSC.requestTimeout = "3000"
    $DVSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache $DVSC
    
    #DistributedAccessCache
    $DAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache
    $DAC.MaxConnectionsToServer = 1
    $DAC.requestTimeout = "3000"
    $DAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache $DAC
    
    #DistributedActivityFeedCache
    $DAF = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache
    $DAF.MaxConnectionsToServer = 1
    $DAF.requestTimeout = "3000"
    $DAF.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache $DAF
    
    #DistributedActivityFeedLMTCache
    $DAFC = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache
    $DAFC.MaxConnectionsToServer = 1
    $DAFC.requestTimeout = "3000"
    $DAFC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache $DAFC
    
    #DistributedBouncerCache
    $DBC = Get-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache
    $DBC.MaxConnectionsToServer = 1
    $DBC.requestTimeout = "3000"
    $DBC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache $DBC
    
    #DistributedDefaultCache
    $DDC = Get-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache
    $DDC.MaxConnectionsToServer = 1
    $DDC.requestTimeout = "3000"
    $DDC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache $DDC
    
    #DistributedSearchCache
    $DSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache
    $DSC.MaxConnectionsToServer = 1
    $DSC.requestTimeout = "3000"
    $DSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache $DSC
    
    #DistributedSecurityTrimmingCache
    $DTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache
    $DTC.MaxConnectionsToServer = 1
    $DTC.requestTimeout = "3000"
    $DTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache $DTC
    
    #DistributedServerToAppServerAccessTokenCache
    $DSTAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache
    $DSTAC.MaxConnectionsToServer = 1
    $DSTAC.requestTimeout = "3000"
    $DSTAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache $DSTAC
    
    #DistributedFileLockThrottlerCache
    $DFLTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedFileLockThrottlerCache
    $DFLTC.MaxConnectionsToServer = 1
    $DFLTC.requestTimeout = "3000"
    $DFLTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedFileLockThrottlerCache $DFLTC
    
    #DistributedSharedWithUserCache
    $DSWUC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSharedWithUserCache
    $DSWUC.MaxConnectionsToServer = 1
    $DSWUC.requestTimeout = "3000"
    $DSWUC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSharedWithUserCache $DSWUC
    
    #DistributedUnifiedGroupsCache
    $DUGC = Get-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedGroupsCache
    $DUGC.MaxConnectionsToServer = 1
    $DUGC.requestTimeout = "3000"
    $DUGC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedGroupsCache $DUGC 
    
    #DistributedResourceTallyCache
    $DRTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedResourceTallyCache
    $DRTC.MaxConnectionsToServer = 1
    $DRTC.requestTimeout = "3000"
    $DRTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedResourceTallyCache $DRTC
    
    #DistributedHealthScoreCache
    $DHSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedHealthScoreCache
    $DHSC.MaxConnectionsToServer = 1
    $DHSC.requestTimeout = "3000"
    $DHSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedHealthScoreCache $DHSC  
    

    Скрипт PowerShell для SharePoint Server 2013

    Add-PSSnapin Microsoft.Sharepoint.Powershell -ea 0
    
    #DistributedLogonTokenCache
    $DLTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache
    $DLTC.MaxConnectionsToServer = 1
    $DLTC.requestTimeout = "3000"
    $DLTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache $DLTC
    
    #DistributedViewStateCache
    $DVSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache
    $DVSC.MaxConnectionsToServer = 1
    $DVSC.requestTimeout = "3000"
    $DVSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache $DVSC
    
    #DistributedAccessCache
    $DAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache
    $DAC.MaxConnectionsToServer = 1
    $DAC.requestTimeout = "3000"
    $DAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache $DAC
    
    #DistributedActivityFeedCache
    $DAF = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache
    $DAF.MaxConnectionsToServer = 1
    $DAF.requestTimeout = "3000"
    $DAF.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache $DAF
    
    #DistributedActivityFeedLMTCache
    $DAFC = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache
    $DAFC.MaxConnectionsToServer = 1
    $DAFC.requestTimeout = "3000"
    $DAFC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache $DAFC
    
    #DistributedBouncerCache
    $DBC = Get-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache
    $DBC.MaxConnectionsToServer = 1
    $DBC.requestTimeout = "3000"
    $DBC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache $DBC
    
    #DistributedDefaultCache
    $DDC = Get-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache
    $DDC.MaxConnectionsToServer = 1
    $DDC.requestTimeout = "3000"
    $DDC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache $DDC
    
    #DistributedSearchCache
    $DSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache
    $DSC.MaxConnectionsToServer = 1
    $DSC.requestTimeout = "3000"
    $DSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache $DSC
    
    #DistributedSecurityTrimmingCache
    $DTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache
    $DTC.MaxConnectionsToServer = 1
    $DTC.requestTimeout = "3000"
    $DTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache $DTC
    
    #DistributedServerToAppServerAccessTokenCache
    $DSTAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache
    $DSTAC.MaxConnectionsToServer = 1
    $DSTAC.requestTimeout = "3000"
    $DSTAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache $DSTAC
    
  3. Откройте Командная консоль SharePoint.

  4. Перейдите к каталогу, в котором вы сохранили файл.

  5. В командной строке PowerShell введите следующую команду:

    ./MaxConnections.ps1
    

Дополнительные сведения см. в статье Параметры конфигурации приложений (кэширование в Windows Server AppFabric). Дополнительные сведения о скриптах и .ps1 файлах Windows PowerShell см. в разделе Выполнение скриптов Windows PowerShell.

Восстановление узла кэша

Во время проведения работ по установке, настройке или обслуживанию служба распределенного кэша может перейти в нерабочее состояние. Сведения о неработоспособности службы отображаются в разделе правил работоспособности в центре Центр администрирования либо при использовании пользователем компонентов SharePoint Server, работа которых основана на распределенном кэше. Например, появляются ошибки в канале новостей на личном сайтеЛичный сайт пользователя. Кроме того, администраторы могут получить сообщение об ошибке "cacheHostInfo равен null " в случае запуска командлетов Командная консоль SharePoint для управления службой распределенного кэша.

Восстановление узла кэша состоит из двух шагов.

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

  1. В командной строке Командная консоль SharePoint запустите командлет Remove-SPDistributedCacheServiceInstance.

  2. В командной строке Командная консоль SharePoint запустите командлет Add-SPDistributedCacheServiceInstance.

    Примечание.

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

    • В командной строке Командная консоль SharePoint введите указанную ниже команду.

      $instanceName ="SPDistributedCacheService Name=SPCache"
      
      $serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
      
      If($serviceInstance -ne $null)
      {
      $serviceInstance.Delete()
      }
      
      
    • После удаления службы распределенного кэша вручную повторите шаг 2.

См. также

Понятия

Планирование веб-каналов и службы распределенного кэша в SharePoint Server