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

 

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

Последнее изменение раздела:2016-12-16

Сводка. Сведения о настройке службы распределенного кэша и управлении ею в SharePoint Server 2013.

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

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

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

Модель: планирование службы распределенного кэша

В этой статье

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Use-CacheCluster Get-AFCacheHostConfiguration -ComputerName ComputerName -CachePort "22233" 
    

    Где:

    • ComputerName — это имя компьютера сервера, на котором выполняется командлет Командная консоль SharePoint.

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

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

    Update-SPDistributedCacheSize -CacheSizeInMB CacheSize
    

    Где:

    • CacheSize — это размер кэша в выделенной памяти в мегабайтах. В предыдущем примере для сервера с общим объемом памяти 16 ГБ было вычислено значение размера кэша 7168 МБ.

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

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

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

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

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

Add-SPDistributedCacheServiceInstance 

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

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

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

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

ПримечаниеПримечание
При использовании скрипта Windows PowerShell в описанной ниже процедуре корректного завершения работы нет необходимости удалять узел кэша из кластера кэша.
Безопасное отключение службы распределенного кэша с помощью скрипта Windows PowerShell
  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
    
    try
    
    {
    
    Use-CacheCluster
    Get-AFCacheClusterHealth
    
    Write-Host "Shutting down distributed cache host."
    $hostInfo = Stop-CacheHost -Graceful -CachePort 22233 -HostName sp2013App.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
    #Get-AFCacheClusterHealth
    $hostInfo = Get-CacheHost -HostName SP2013app.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."
    } 
    

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

  3. В меню "Пуск" выберите Все программы.

  4. Выберите Продукты Microsoft SharePoint 2013.

  5. Выберите компонент Командная консоль SharePoint 2013.

  6. Измените каталог сохранения файла.

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

    ./GracefulShutdown.ps1
    

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

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

  1. Создайте управляемую учетную запись. Дополнительные сведения см. в статье Настройка автоматической смены паролей в SharePoint 2013.

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

    $farm = Get-SPFarm $cacheService = $farm.Services | where {$_.Name -eq "AppFabricCachingService"} $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 — доменное имя и имя пользователя управляемой учетной записи.

Параметр службы распределенного кэша для MaxConnectionsToServer часто настраивается на основе числа процессоров, используемых на хост-компьютере. Если, например, используется несколько ядер и вы установите в параметре MaxConnectionsToServer это же значение, компьютер часто будет использовать слишком много памяти и перестанет работать. Такие же проблемы возникают при настройке параметров DistributedLogonTokenCache и DistributedViewStateCache. Значение по умолчанию — 20 мс, но зачастую возникают исключения, если кэширование маркера не происходит в течение этих 20 мс. Используйте следующий скрипт Windows PowerShell, чтобы изменить время ожидания и максимальное число подключений.

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

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

    ПримечаниеПримечание
    В качестве имени файла можно указать любое другое имя, однако файл должен быть сохранен в виде текстового файла в формате ANSI с расширением PS1.
    Add-PSSnapin Microsoft.Sharepoint.Powershell
    
    #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. В меню "Пуск" выберите Все программы.

  4. Выберите Продукты Microsoft SharePoint 2013.

  5. Выберите компонент Командная консоль SharePoint 2013.

  6. Измените каталог сохранения файла.

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

    ./MaxConnections.ps1
    

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

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

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

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

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

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

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

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

Показ: