Gérer le service de cache distribué dans SharePoint Server

 

**Sapplique à :**SharePoint Server 2013, SharePoint Server 2016

**Dernière rubrique modifiée :**2017-12-05

Résumé : Découvrez comment configurer et gérer le service de cache distribué dans SharePoint Server 2013 et SharePoint Server 2016.

Pour effectuer des tâches opérationnelles et de gestion sur le service de cache distribué dans SharePoint Server, un administrateur doit exécuter des procédures spécifiques et chronologiques. Cet article décrit comment réaliser plusieurs tâches opérationnelles et de gestion sur le service de cache distribué.

Important

Le service de cache distribué peut se retrouver dans un état inopérationnel ou irrécupérable si vous ne suivez pas les procédures répertoriées dans cet article. Dans des situations extrêmes, vous pourriez avoir à recréer la batterie de serveurs. Le cache distribué dépend du prérequis Windows Server AppFabric. N’administrez pas le Service de mise en cache AppFabric depuis la fenêtre Services des Outils d’administration du Panneau de configuration. N’utilisez pas les applications dans le dossier nommé AppFabric pour Windows Server dans le menu Démarrer.

Important

N’utilisez pas de nom de compte de service contenant le symbole $.

Dans cet article :

  • Démarrer et arrêter le service de cache distribué

  • Modifier l’allocation de mémoire du service de cache distribué

  • Ajouter ou supprimer un serveur dans un cluster de cache distribué

  • Effectuer un arrêt approprié du service de cache distribué

  • Modifier le compte de service

  • Ajuster le service de cache distribué à l’aide d’un script Windows PowerShell

  • Réparer un hôte de cache

Démarrer et arrêter le service de cache distribué

Un administrateur qui effectue des tâches de maintenance et opérationnelles peut avoir besoin de démarrer et d’arrêter le service de cache distribué. Certaines de ces tâches incluent les suivantes :

  • Modification de la configuration par défaut de la batterie de serveurs au moment de l’installation. Le service de cache distribué est démarré sur tous les serveurs SharePoint au moment de l’installation. Un administrateur peut vouloir arrêter le service de cache distribué sur certains serveurs de la batterie.

  • Mise à jour du serveur alors qu’il n’existe qu’un seul serveur de cache distribué dans la batterie de serveurs SharePoint Server.

L’arrêt du cache engendre une perte de données partielle. Le cache de flux dépend du service de cache distribué. Les balises et les activités de document sont enregistrées uniquement dans le cache de flux ; elles ne sont pas persistantes dans les bases de données de contenu. Lorsque le service de cache distribué est arrêté, les balises et les activités de document sont perdues. Lorsque le service de cache distribué est démarré, un remplissage se produit lorsque le travail du minuteur de remplissage du cache de flux s’exécute. Une manière de conserver les balises et les activités de document consiste à utiliser la méthode décrite dans la section Effectuer un arrêt approprié du service de cache distribué plus loin dans cet article. Lorsque la méthode de l’arrêt approprié du service de cache distribué est utilisée, toutes les données du cache sont déplacées d’un serveur vers un autre avant l’arrêt du service de cache distribué.

Notes

Si les hôtes de votre cache font partie d’un cluster de cache, ne démarrez pas ou n’arrêtez pas le service de cache distribué comme indiqué ici. Consultez plutôt Ajouter ou supprimer un serveur dans un cluster de cache distribué plus loin dans cet article.

Pour démarrer et arrêter le service de cache distribué à l’aide de l’Administration centrale

  1. Dans l’Administration centrale, cliquez sur Gestion des applications.

  2. Dans Applications de service, cliquez sur Gérer les services sur le serveur.

  3. Dans la page Services sur le serveur, localisez le service Cache distribué.

  4. Si le service de cache distribué est démarré alors que vous voulez l’arrêter, sous Action, cliquez sur Arrêter. Si le service de cache distribué est arrêté alors que vous voulez le démarrer, sous Action, cliquez sur Démarrer.

Pour démarrer le service de cache distribué à l’aide de SharePoint 2016 Management Shell

À l’invite de commandes SharePoint Management Shell, exécutez la commande suivante :

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

Pour arrêter le service de cache distribué à l’aide de SharePoint 2016 Management Shell

À l’invite de commandes SharePoint Management Shell, exécutez la commande suivante :

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

Modifier l’allocation de mémoire du service de cache distribué

Lorsque SharePoint Server est installé, il affecte au service de cache distribué 10 pour cent de la mémoire physique totale sur le serveur. Le service de cache distribué utilise la moitié de l’allocation de mémoire pour le stockage des données (également appelé taille du cache) et l’autre moitié de l’allocation de mémoire est utilisée pour le traitement lié à la gestion de la mémoire. Lorsque les données mises en cache augmentent, le service de cache distribué utilise la totalité des 10 pour cent de mémoire allouée.

Vous devez augmenter l’allocation de mémoire du service de cache distribué dans les situations suivantes :

  • Lors de l’ajout de mémoire physique au serveur. Le service de cache distribué ne recalcule pas automatiquement les 10 % d’allocation de mémoire. Ainsi, lorsque vous augmentez la mémoire physique totale sur le serveur, vous devez augmenter manuellement l’allocation de mémoire du service de cache distribué.

  • Lorsque la batterie de serveurs dispose d’un service de cache distribué dédié. Utilisez la méthode suivante pour calculer la quantité de mémoire qu’il est possible d’affecter au service de cache distribué :

    1. Déterminez la mémoire physique totale sur le serveur. Pour cet exemple, nous utilisons une mémoire physique totale disponible de 16 Go sur le serveur.

    2. Réservez 2 Go de mémoire aux autres processus et services qui s’exécutent sur l’hôte de cache. Par exemple, 16 Go – 2 Go = 14 Go. Cette mémoire restante est allouée au service de cache distribué.

    3. Prenez la moitié de la mémoire restante, puis convertissez-la en Mo. Par exemple, 14 Go/2 = 7 Go, soit 7 168 Mo. Vous obtenez la taille du cache du service de cache distribué.

    4. Utilisez la procédure suivante pour mettre à jour l’allocation de mémoire en conséquence.

Modifier l’allocation de mémoire du cache distribué

Utilisez cette procédure pour reconfigurer l’allocation de mémoire de taille du cache pour le service de cache distribué.

  1. (Facultatif) Pour vérifier l’allocation de mémoire existante pour le service de cache distribué sur un serveur, exécutez la commande suivante à l’invite de commandes SharePoint Management Shell :

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

    Où :

    • ComputerName est le nom d’ordinateur du serveur sur lequel vous exécutez l’applet de commande SharePoint Management Shell.
  2. Arrêtez le service de cache distribué sur tous les hôtes de cache. Pour arrêter le service, accédez à Services sur le serveur dans l’Administration centrale, puis arrêtez le service de cache distribué sur tous les hôtes de cache dans la batterie.

  3. Pour reconfigurer la taille du cache du service de cache distribué, exécutez la commande suivante une seule fois sur un hôte de cache à l’invite de commandes SharePoint Management Shell :

    Update-SPDistributedCacheSize -CacheSizeInMB CacheSize
    

    Où :

    • CacheSize correspond à l’allocation de mémoire pour la taille du cache en Mo. Dans l’exemple précédent, la taille de cache calculée s’élevait à 7 168 Mo pour un serveur doté d’une mémoire totale de 16 Go.
  4. Redémarrez le service de cache distribué sur tous les hôtes de cache. Pour ce faire, accédez à Services sur le serveur dans l’Administration centrale, puis démarrez le service de cache distribué sur tous les hôtes de cache dans la batterie.

Ajouter ou supprimer un serveur dans un cluster de cache distribué

Un administrateur peut ajouter un serveur à un cluster de cache ou l’en supprimer, il peut également supprimer un serveur du cluster de cache, effectuer des tâches opérationnelles ou de maintenance sur le serveur, puis rétablir ce serveur ou l’ajouter au cluster de cache. Lors de la suppression du serveur, le service de cache distribué est arrêté, puis son inscription est annulée auprès du serveur. L’annulation de l’inscription du service de cache distribué signifie que pour un administrateur, le service de cache distribué n’est pas répertorié dans la page Services sur le serveur de l’Administration centrale. De même, lorsqu’un serveur est ajouté, le service de cache distribué est inscrit, puis démarré sur le serveur. L’inscription du service de cache distribué signifie que pour un administrateur, le service de cache distribué est répertorié dans la page Services sur le serveur de l’Administration centrale.

Utilisez les procédures suivantes pour ajouter un serveur au cluster de cache et l’en supprimer. Ces applets de commande SharePoint Management Shell sont exécutées sur le serveur en cours d’ajout ou de suppression.

Notes

Avant d’appliquer les procédures suivantes, vérifiez que le pare-feu autorise le trafic ICMP entrant (ICMPv4). Pour plus d’informations, voir Points à prendre en compte pour la configuration du pare-feu.

Ajouter un serveur au cluster de cache et démarrer le service de cache distribué à l’aide de SharePoint 2016 Management Shell

À l’invite de commandes SharePoint Management Shell, exécutez la commande suivante :

Add-SPDistributedCacheServiceInstance

Supprimer un serveur du cluster de cache à l’aide de SharePoint 2016 Management Shell

À l’invite de commandes SharePoint Management Shell, exécutez la commande suivante :

Remove-SPDistributedCacheServiceInstance

Important

Cette procédure arrête le service de mise en cache et les données non persistantes du cache sont perdues. Si vous souhaitez conserver les données mises en cache, utilisez la procédure d’arrêt approprié, qui est décrite dans la section suivante.

Effectuer un arrêt approprié du service de cache distribué à l’aide d’un script PowerShell

Dans une batterie de serveurs SharePoint Server 2016, il existe un cluster de cache lorsque des hôtes de cache exécutent le service de cache distribué. Dans une batterie de serveurs SharePoint Server 2016, il existe un seul cache, lequel s’étend sur tout le cluster de cache. Un administrateur peut déplacer le contenu mis en cache vers un autre hôte de cache lors de l’application de mises à jour au serveur. Pour empêcher la perte de données associée au déplacement du contenu mis en cache, vous devez effectuer un arrêt approprié du serveur à l’aide du script PowerShell dans la procédure suivante. La procédure d’arrêt approprié transfère toutes les données mises en cache à partir de l’hôte de cache sur lequel cette procédure est exécutée vers un autre hôte de cache de la batterie de serveurs. Le processus de transfert prend 15 minutes ou plus en fonction du nombre d’éléments présents dans le cache.

Pour effectuer un arrêt approprié du cache distribué à l’aide d’un script PowerShell

Utilisez le script PowerShell suivant pour effectuer un arrêt approprié du serveur de cache distribué, afin de déplacer le contenu mis en cache vers un autre hôte de cache. Veillez à bien spécifier le nœud à arrêter et modifiez le script selon vos besoins pour nommer les paramètres appropriés pour votre organisation.

Notes

Il est inutile de supprimer l’hôte de cache d’un cluster de cache si vous utilisez le script PowerShell pour effectuer un arrêt approprié dans le cadre de la procédure suivante.

  1. Vérifiez que vous disposez de la configuration minimale requise suivante :

  2. Copiez les déclarations de variables suivantes et collez-les dans un éditeur de texte, tel que le bloc-notes. Définissez les valeurs de paramètres propres à votre organisation. Enregistrez le fichier et nommez-le GracefulShutdown.ps1.

    Notes

    Vous pouvez utiliser un autre nom de fichier, mais vous devez enregistrer le fichier en tant que fichier texte ANSI portant l’extension .ps1.

    ## Settings you may want to change for your scenario ##
    $startTime = Get-Date
    $currentTime = $startTime
    $elapsedTime = $currentTime - $startTime
    $timeOut = 900
    
    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 est le nom de domaine du serveur de cache distribué que vous utilisez sur l’ordinateur.

  3. Ouvrez SharePoint Management Shell.

  4. Accédez au répertoire dans lequel vous avez enregistré le fichier.

  5. À l’invite de commandes PowerShell, tapez la commande suivante :

    ./GracefulShutdown.ps1
    

    Pour plus d’informations sur les scripts PowerShell et les fichiers .ps1, voir Exécution des scripts Windows PowerShell.

Modifier le compte de service

Lors de la première configuration de la batterie de serveurs, son compte est défini en tant que compte de service du service de mise en cache AppFabric. Le service de cache distribué dépend du service de mise en cache AppFabric. Pour remplacer le compte de service du service de mise en cache AppFabric par un compte géré :

  1. Créez un compte géré.

  2. Définissez le compte géré en tant que compte de service sur le service de mise en cache AppFabric. À l’invite de commandes SharePoint Management Shell, exécutez la commande suivante :

    $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 correspond au nom de domaine et au nom d’utilisateur du compte géré.

Ajuster le service de Cache distribué à l’aide un script PowerShell

Le paramètre de service de cache distribué pour MaxConnectionsToServer est souvent ajusté en fonction du nombre de processeurs utilisés sur l’ordinateur hôte. Si, par exemple, vous utilisez plusieurs cœurs, puis définissez le paramètre MaxConnectionsToServer sur le même nombre de processeurs, l’ordinateur utilise souvent trop de mémoire et se bloque. Des problèmes similaires se produisent lors de l’ajustement des paramètres DistributedLogonTokenCache et DistributedViewStateCache . Le paramètre par défaut est de 20 ms, mais souvent des exceptions sont détectées lorsque la mise en cache de jeton ne se produit pas dans le paramètre de 20 ms. Utilisez le script PowerShell suivant pour modifier les paramètres pour le nombre maximal de connexions et de délais d’expiration.

Pour régler le service de cache distribué à l’aide d’un script PowerShell

  1. Vérifiez que vous disposez de la configuration minimale requise suivante :

  2. Copiez les déclarations de variables suivantes et collez-les dans un éditeur de texte, tel que le bloc-notes. Définissez les valeurs de paramètres propres à votre organisation. Enregistrez le fichier et nommez-le MaxConnections.ps1.

    Notes

    Vous pouvez utiliser un autre nom de fichier, mais vous devez enregistrer le fichier en tant que fichier texte ANSI portant l’extension .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
    
    #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 
    
  3. Ouvrez SharePoint Management Shell.

  4. Accédez au répertoire dans lequel vous avez enregistré le fichier.

  5. À l’invite de commandes PowerShell, tapez la commande suivante :

    ./MaxConnections.ps1
    

    Pour plus d’informations, voir l’article relatif aux meilleures pratiques d’utilisation du cache Windows Azure/Windows Server Appfabric et l’article Paramètres de configuration de l’application (mise en cache de Windows Server AppFabric). Pour des informations supplémentaires sur les scripts Windows PowerShell et les fichiers .ps1, voir Exécution de scripts Windows PowerShell.

Réparer un hôte de cache

Lors des activités d’installation, de configuration ou de maintenance, le service de cache distribué peut ne plus fonctionner. La preuve de ce comportement apparaît dans les règles d’intégrité dans l’Administration centrale ou lorsque les utilisateurs se servent de fonctionnalités de SharePoint Server qui s’appuient sur le cache distribué. Par exemple, le flux d’actualités du Mon site d’un utilisateur va commencer à signaler des erreurs. De plus, les administrateurs peuvent recevoir le message d’erreur « cacheHostInfo est null  » lors de l’exécution des applets de commande SharePoint Management Shell pour gérer le service de cache distribué.

Deux étapes sont nécessaires pour réparer un hôte de cache.

Utilisez la procédure suivante pour restaurer l’hôte de cache distribué qui ne fonctionne plus.

  1. À l’invite de commandes SharePoint Management Shell, exécutez la cmdlet Remove-SPDistributedCacheServiceInstance.

  2. À l’invite de commandes SharePoint Management Shell, exécutez la cmdlet Add-SPDistributedCacheServiceInstance.

    Notes

    En cas d’échec de l’étape 1, supprimez manuellement le service de cache distribué à l’aide de la procédure suivante.

    • À l’invite de commandes SharePoint Management Shell, tapez la syntaxe suivante :

      $instanceName ="SPDistributedCacheService Name=AppFabricCachingService"
      
      $serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
      
      If($serviceInstance -ne $null)
      {
      $serviceInstance.Delete()
      }
      
    • Une fois que le service de cache distribué a été supprimé manuellement, exécutez à nouveau l’étape 2.

See also

Planifier les flux et le service de cache distribué dans SharePoint Server