Distributed Cache SharePoint 2013


 

Hi Folks !

Aujourd’hui j’ai envie de vous parler du DistributedCache de SharePoint 2013  alias le Cache Distribué ou encore le AppFabrikCache

Ce cache est de base prévu pour le cloud de Microsoft, Azure mais a été porté pour les versions OnPremise également.

 
 

Je vous propose à travers ce post d’apprendre à connaitre un peu ce nouvel ami (Distributed Cache) de voir comment est-ce qu’il s’installe, ce configure, ce paramètre et quelques commandes SharePoint PowerShell pour gérer un peu tout ceci.

 
 

Tout d’abord, le Distributed Cache, qu’est-ce que c’est ?

Lorsque vous envisagez de mettre en œuvre le service de cache distribué, considérer que le service Distributed Cache peut être déployé en deux modes:

Le mode dédié

Le mode co-localisée.

En mode dédié, tous les services autres que le service de cache distribué est arrêté sur le serveur d’application qui exécute le service de cache distribué.

En mode co-localisée, le service Distributed Cache fonctionne avec d’autres services sur le serveur d’applications. Mode dédié est le mode recommandé dans lequel déployer le service de cache distribué.

En image c’est plus simple :

 

Lorsque le programme d’installation de SharePoint Server 2013 fonctionne préalable, il installe Windows Server AppFabric. Telle est l’approche recommandée pour l’installation de Windows Server AppFabric sur un serveur qui exécute SharePoint Server 2013.

 

On y met quoi dans le cache ?

Tout est fait automatiquement !

Il y a quelque morceau de data, mais la majorité proviens des fonctionnalités sociales de SharePoint 2013 (tags, activité de documents) Il y a également pas mal de morceau d’authentification et de sécurité qui sont mises en cache pour des questions de performances (Claims, token, security trimming, …)

La liste complète ce trouve ici : http://technet.microsoft.com/en-US/library/jj219700.aspx

 

Planification de la capacité pour le service Distributed Cache

Plan & Use Distributed Cache :

http://www.microsoft.com/en-us/download/details.aspx?id=35557

Le Distributed Cache stocke des données en mémoire et n’a pas de dépendance à l’égard des bases de SharePoint. Services de SharePoint demande des ressources importantes de mémoire qui peuvent affecter la performance du service de cache distribué.

La performance du service de cache distribué est fortement influencée à la fois par le choix de l’architecture et de l’allocation de mémoire pour le service de cache distribué.

Le tableau suivant répertorie les différentes recommandations de la mémoire et de l’architecture pour le service de cache distribué, en fonction du nombre total d’utilisateurs.

 
 

Dans une ferme SharePoint Server 2013, il doit y avoir au moins un hôte de cache qui exécute le service de cache distribué.

L’allocation de mémoire

Le service d’allocation de mémoire cache distribuée pour la taille du cache est réglé sur une valeur par défaut de 10 pour cent de la mémoire physique totale lorsque SharePoint Server s’installe.

Il est possible de modifier l’allocation de mémoire pour le service de cache distribué uniquement en PowerShell avec la commande Update-SPDistributedCacheSize.

Le service Distributed Cache peut se voir attribuer un maximum de 16 Go de mémoire par hôte de cache dans le cluster de cache. Il est vivement conseillé de conserver 2 Go de mémoire pour d’autres services qui s’exécutent sur le serveur, et d’affecter la mémoire restante pour le service de cache distribué.

Important:
Sur un serveur qui possède plus de 16 Go de mémoire physique totale, allouer un maximum de 16 Go de mémoire pour le service de cache distribué. Si vous allouez plus de 16 Go de mémoire au service de cache distribué, le serveur peut cesser de répondre.

Si vous avez besoin de plus de mémoire, vous pouvez configurer le service de cache distribué pour fonctionner sur plusieurs serveurs d’application. Dans ce cas, le cache s’étend sur tous les serveurs qui exécutent le service de cache distribué, et agit comme un cache qui prend en charge l’ensemble de la ferme. Pour ajouter un autre serveur d’application, adhérer au nouveau serveur d’applications à la batterie de serveurs à l’aide de l’Assistant Configuration de SharePoint. Vous devez décider si le nouveau serveur d’applications doit s’exécuter en mode dédié ou co-implantés.

Vous devez vous assurer que l’allocation de mémoire affecté au service de cache distribué est le même sur tous les serveurs qui exécutent le service de cache distribué. Données mises en cache sont stockées sur un serveur, et non pas les deux serveurs.

Lorsque le service de cache distribué est exécuté en mode colocalisé, la mémoire physique du serveur doit être augmentée et tous les services non essentiels arrêté.

Pour plus de performance, il est recommandé de ne pas faire fonctionner l’ensemble des services suivant sur la même machine :

  • SQL Server 2008 ou SQL Server 2012
  • Service de recherche
  • Excel Services dans SharePoint
  • Services de Project Server

Lors de la planification des postes de travail des développeurs, poste de travail du développeur devrait avoir un minimum de 32 Go de mémoire physique totale. Sur les stations de travail des développeurs, SharePoint Server 2013 est installé comme un déploiement de serveur unique. Cela signifie que le service de cache distribué est déployé en mode colocalisé. En mode co-localisée, il y aura concurrence pour les ressources mémoire. Pour gérer l’allocation des ressources mémoire, un développeur peut arrêter les services qui ne sont pas utilisés, ou ils peuvent périodiquement redémarrer SQL Server.

Important:
Le service de cache distribué peut fonctionner sur un serveur physique ou virtuel. Lors de l’utilisation de la virtualisation, n’utilisez pas de mémoire dynamique pour gérer les ressources de mémoire partagée parmi d’autres machines virtuelles et les serveurs de cache distribué. L’allocation de mémoire pour serveurs virtualisés cache distribué doit être fixé.

Distribué séquence de configuration du cache de service

Démarrage et arrêt du service de cache distribué en résulte une manière non planifiées dans le service Distributed Cache devenir instable. Lorsque vous effectuez la configuration initiale d’un serveur SharePoint 2013 ferme, effectuez les étapes suivantes dans l’ordre suivant:

  1. Exécutez l’Assistant Configuration de rejoindre tous les serveurs de la batterie de serveurs. Le service de cache distribué est démarré sur tous les serveurs Web et les serveurs d’applications de la batterie de serveurs.
  2. Lorsque vous êtes prêt à configurer le service de cache distribué, vérifiez que le service de cache distribué est en cours d’exécution sur tous les serveurs de la batterie de serveurs. Ensuite, arrêter le service de cache distribué sur tout serveur qui n’est pas destiné à faire partie du cluster de cache.

Important:
Si vous arrêtez le service de cache distribué sur tous les serveurs qui exécutent le service de cache distribué, ne redémarrez pas le service de cache distribué sur un seul serveur. Redémarrez le service de cache distribué sur tous les serveurs de cache distribué en même temps. Bien que le service Distributed Cache-ci redémarre, le rendement initial est affecté pendant une courte période.

Comme alternative à la méthode précédente, un administrateur peut installer SharePoint Server 2013 sans l’inscription du service de cache distribué sur les serveurs ne sont pas destinés à faire partie du cluster de cache. Ceci peut être réalisé en utilisant le paramètre skipRegisterAsDistributedCachehost avec la New-SPConfigurationDatabase ou les applets de commande Connect-SPConfigurationDatabaseWindows PowerShell, ou lors de l’exécution psconfig.exe à la ligne de commande.

Remarques concernant la configuration du pare-feu
Le service Distributed Cache utilise les ports de communication suivants:

  • 22233
  • 22234
  • 22235
  • 22236

Port Name

Default Value

Application Configuration File Attribute

Cluster Configuration File Attribute

Cache port

22233

cachePort

cachePort

Cluster port

22234

Not applicable

clusterPort

Arbitration port

22235

Not applicable

arbitrationPort

Replication port

22236

Not applicable

replicationPort

 

Remarque:
Autorisé les connections entrantes et sortantes du service de cache distribué ICMPv4.

 
 

Un peu de debug de Cache

Start & stop Distributed Cache service

Via la Central Administration

  1. Depuis la Central Administration, click Application Management.
  2. Depuis Service Applications, click Manage Services on Server.
  3. Sélectionner Distributed Cache service.
  4. Si le service de cache distribué est started et que vous souhaitez le stopped click Stop ; sinon Start.

Via PowerShell

At the Windows PowerShell command prompt, run the following command:

$instanceName = »SPDistributedCacheService Name=AppFabricCachingService »

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

$serviceInstance.Provision()

 
 

Via PowerShell

At the Windows PowerShell command prompt, run the following command:

$instanceName = »SPDistributedCacheService Name=AppFabricCachingService »

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

$serviceInstance.Unprovision()

 
 

Allouer de la mémoire au Distributed Cache service

Lorsque SharePoint s’installe, 10% du total de la mémoire physique est alloué. Le Distributed Cache service utilize 50% de cette mémoire allouée comme stockage (aka cache size), et l’autre moitié est utilisée pour gérer la mémoire. Lorsque le cache « grandi » le service utilise les 10% alloué.

Vous souhaitez augmenter l’allocation mémoire du cache distribué si :

  • Vous ajouter de la mémoire au serveur.

    Le Distributed Cache service ne recalcule pas automatiquement les 10% de mémoire allouée, donc si vous augmentez la mémoire du serveur, alors penser à augmenter également la taille mémoire du cache.

  • Si vous ferme possède un serveur de cache dédié.

    Utiliser alors la méthode suivante pour calculer combien de mémoire alloué au Cache Distribué :

    • Determiner la mémoire total du serveur. Par exemple vous avez un serveur avec 16Go de RAM total de disponible sur le serveur.
    • Réserver 2Go pour les autres processus. Par exemple, 16Go – 2Go = 14Go.
    • Prennez 50% des 14Go et convertisser le en Mo. 14Go/2 = 7Go = 7 000MoTake half of the remaining memory, and convert it to MB. For example, 14 GB/2 = 7 GB or 7000 MB. C’est votre cache size ! (Ne doit pas dépasser les 16Go)
    • Utiliser ensuite les commandes suivantes pour allouer la mémoire.

Change the memory allocation of the Distributed Cache

Use this procedure to reconfigure the memory allocation of the cache size of the Distributed Cache service.

  • Use-CacheCluster
  • Get-AFCacheHostConfiguration -ComputerName -CachePort « 22233 »

Où:

  • Stopper le Distributed Cache service sur tous les caches hosts.
  • Update-SPDistributedCacheSize -CacheSizeInMB CacheSize

Où:

  • CacheSize est la taille mémoire en Mo (7 000Mo du serveur qui as 16Go)
  • Restart le Distributed Cache service sur tous les serveurs du cache host.

Ajouter / Supprimer un serveur dans un cluster de Cache Distribué

Lorsque vous supprimer un serveur du cluster de cache, assurez-vous que le service soit stoppé. Puis ensuite dé commissionner le serveur proprement afin de le dé enregistrer de la ferme.

Désenroller le service signifie qu’il ne sera pas visible depuis la page listant les services du serveur SharePoint dans la Central Administration.

Ajouter un serveur au cache cluster et démarrer le Distributed Cache service

Add-SPDistributedCacheServiceInstance

Retirer un serveur du cache cluster

Remove-SPDistributedCacheServiceInstance

 
 

Graceful shutdown du Distributed Cache service

Dans SharePoint 2013, un cluster de cache existe lorsqu’une ou plusieurs machines effectue le service de Distributed Cache.

Lors des périodes de maintenances des serveurs, vous pouvez être amené à sortir le serveur du cluster de cache. Afin d’éviter une perte de données associé vous devez utiliser la procédure suivante (Graceful) avant de retirer le serveur du cluster de cache.

La procédure Graceful est exécutée sur l’hôte de cache qui est retiré du cluster de cache. Cet hôte de cache stocke une partie des données mises en cache. La procédure d’arrêt progressif (Graceful) transfère toutes les données mises en cache de l’hôte de cache sur lequel la procédure d’arrêt progressif est en cours d’exécution sur un autre hôte de cache à la ferme.

Le processus de transfert est de 15 minutes ou plus selon le nombre d’articles existe dans le cache. Lorsque le processus de transfert est terminé, retirer l’hôte de cache à l’aide de la cmdlet Remove-SPDistributedCacheServiceInstance n’entraîne pas de perte de données.

Stop-SPDistributedCacheServiceInstance -Graceful

Remove-SPDistributedCacheServiceInstance

 
 

Changer le compte de service

Quand une ferme SharePoint est configure, le compte de service utilisé est celui d’installation pour le service AppFabric Caching service. Pour le mettre à jour suivez la procedure suivante:

  1. $farm = Get-SPFarm
  2. $cacheService = $farm.Services | where {$_.Name -eq « AppFabricCachingService »}
  3. $accnt = Get-SPManagedAccount -Identity domain_name\user_name
  4. $cacheService.ProcessIdentity.CurrentIdentityType = « SpecificUser »
  5. $cacheService.ProcessIdentity.ManagedAccount = $accnt
  6. $cacheService.ProcessIdentity.Update()
  7. $cacheService.ProcessIdentity.Deploy()

 

Réparer un cache host

Au cours de l’installation, de la configuration ou de la maintenance, le service Distributed Cache peut tomber dans un état de non-fonctionnement.

Indice : Suivez de près les règles de santé dans l’Administration centrale, ou lorsque les utilisateurs utiliser les fonctionnalités de SharePoint Server 2013, qui s’appuient sur le cache distribué. Par exemple, l’échange de News sur mon site d’un utilisateur démarre avec des erreurs de déclaration. En outre, les administrateurs peuvent recevoir le message d’erreur « cacheHostInfo est nul »

Utilisez alors la procédure suivante :

  1. Get-SPServiceInstance pour lister all services de tous les serveurs de la ferme. Noter le GUID du Distributed Cache service du serveur à réparer.
  2. $s = Get-SPServiceInstance GUID
  3. $s.delete()
  4. Add-SPDistributedCacheServiceInstance pour reinstaller et start le Distributed Cache service.

 
 

Etat de santé du cache host

Le calcul de l’état de santé du service de Distributed Cache s’effectue de la manière suivante:

Health score = 100/ nombre total de partitions de cache

Pour trouver le nombre total de partitions, éxécuter la commande Get-CacheClusterHealth.

Cette commande donne le nombre de partition de cache par serveurs du cluster de cache.

Exemple:

Nous avons 3 serveurs dans la ferme SharePoint ou le service CacheCluster est activé.

Chaque serveur possède 10 partitions, nous avons donc 30 partitions.

Le Health score sera donc de 100/30= 3.33 par serveur.

L’article suivant permet de mieux comprendre le principe : http://msdn.microsoft.com/en-us/library/ff921010(v=azure.10).aspx
– Health Monitoring Tools (Windows Server AppFabric Caching)

Health Category

Description

Healthy

The cache is operating normally. This is the target state for all caches.

UnderReconfiguration

The cache is under reconfiguration. This is an internal state that may have several causes, but it should be temporary and resolve to healthy.

NotPrimary

The cache is not currently available. This can happen when secondary copies are promoted to primary. During this transition, the cache may temporarily have a state of NotPrimary. This state should typically resolve to healthy.

NoWriteQuorum

The cache is read-only, because the cache is unable to create the required number of replicas on secondary cache hosts. This occurs when the cache has the high availability option enabled (Secondaries = 1). In this scenario, there must be at least two running cache hosts in the cluster, one for the primary copy of the cached item and another for the secondary copy.

Throttled

The cache is read-only, because the cache host is in a throttled memory state. This is a low-memory condition.

 

 

Ce qu’il faut retenir

Manipuler le cache avec beaucoup de précaution avec l’option Graceful pour éviter de perdre de données.

N’attribuer pas de mémoire dynamique à SharePoint => Cela ce conclura par une réinstallation de votre plateforme si c’est le cas.

N’allouez pas plus de 16Go de RAM à la totalité des hôtes du cluster et pas plus de 16 Machines dans le ClusterCache

Les commandes suivantes seront très utiles pour avoir le Health Score de votre Cache-Cluster

Use-CacheCluster

Get-CacheClusterHealth

N’ignorez pas les alertes de performances du ruban rouge de la Centrale d’Administration !!

 

Enjoy & Have fun !

Laisser un commentaire