Toujours dans la suite des articles sur l’optimisation des performances de sites basés sous Microsoft Office SharePoint Server 2007, voilà une des fonctionnalités intéressantes :
Cette fonctionnalité est disponible uniquement pour une ferme basée sur MOSS, en effet, l’activation du BlobCache sur une ferme WSS provoque une erreur :
Mais qu’est-ce que ce principe ?
Dans un site SharePoint, tout ce qui n’est pas dans le répertoire “12” est en base de données. Le résultat de cette logique n’est pas dramatique en soit, mais on voit très rapidement que de nombreux fichiers de Design peuvent se trouver dans cette base de données :
- Les fichiers de script (.JS)
- Les fichiers de design (.CSS)
- Les images
Lorsque chaque utilisateur arrive sur la page par défaut, il y a un grand nombre de requêtes SQL qui sont exécutées pour uniquement extraire ces fichiers et les associer au rendu HTML transmis à cet utilisateur.
Ce fonctionnement peut rapidement saturer inutilement le serveur SQL.
Le principe du BlobCache de SharePoint 2007 est donc la mise en cache sur disque de contenu suivant le type choisi afin de limiter les requêtes inutiles exécutées par le serveur SQL.
Comment cela fonctionne ?
On va donc définir en premier lieu les informations suivantes :
- Les types de fichiers (par extension)
- La taille maximale du cache que l’on veut conserver sur disque
- La durée de rétention de ces fichiers
- Le lieu de stockage de ces fichier sur le serveur frontal
Une fois ces informations connues, on il faut comprendre que le BlobCache se paramètre manuellement sur chaque application Web de chaque serveur frontal.
Ainsi dans une ferme classique MOSS :
- 2 Web Front End
- 1 Serveur App (Search MOSS)
- 1 Serveur SQL
On va donc définir ce paramétrage sur les serveur Web Front End toutes les Web Applications (sauf le site d’administration).
Pour cela, on va éditer le fichier Web.Config de chaque Web Application, et localiser le bloc (généralement il se situe juste au dessus de la fermeture du bloc </SharePoint>) :
<BlobCache location="C:\blobCache" path="\.(gif|jpg|png|css|js)$" maxSize="10" enabled="false" />
On va modifier ce fichier avec les informations précédemment définies :
- location : Répertoire de stockage de ces fichiers de cache. Attention, il est fortement déconseillé d’utiliser le disque système pour cela.
- path : Type de fichier que l’on va conserver en cache. De base, ce sera les images, JavaScript et CSS, mais on peut y ajouter des Flash
- maxSize : Taille maximale du volume de fichiers en cache. Attention, cette valeur est en GB, il convient donc d’avoir cet espace disponible sur le lecteur du répertoire choisi
- max-age : Temps de rétention des fichiers en secondes
- enable : Activation ou non de la fonctionnalité
Le fichier peut donc être comme celui-ci :
<BlobCache location="D:\blobCache" path="\.(gif|jpg|png|css|js)$" maxSize="10" max-age="14400" enabled="false" />
Une fois les Web.Config modifiés sur toutes les Web Applications de tous ses serveur Frontaux, on voit apparaître sur chaque serveur frontal un résultat comme celui-ci :
Il s’agit donc d’une organisation reprenant l’arborescence de ses sites SharePoint avec les fichiers définis en paramètre.
Tous ces fichiers possède alors une extension supplémentaire .CACHE et on trouve, au niveau racine de chaque Web Application (définie par le numéro dans IIS), trois fichiers BIN :
Ces fichiers contiennent les références vers les fichiers en cache.
Comment remettre ce cache à 0 ?
Le nettoyage du cache existant est à effectuer sur chaque serveur Frontal, soit via le site WEB :
- Site Actions > Site Settings > Modify All Site Settings
- Dans la partie “Site Collection Administration”, on trouve le lien “Site Collection Object Cache”
On trouve alors le paramètre, dans le groupe “Disk Based Cache Reset”, l’option “Force this server to reset its disk based cache”, on coche cette option et valide sur OK
Cette action est donc à effectuer depuis chaque serveur frontal pour effectuer un reset intégral et sur chaque collection de sites de chaque Web Application.
Une seconde option est possible via la commande STSADM :
- STSADM -o setproperty -propertyname blobcacheflushcount -propertyvalue 11 –url ‘http://mywebapp:port’
Attention :
Chaque serveur frontal est autonome dans la gestion des fichiers en cache, il est donc possible d’avoir des décallage au niveau du contenu des serveurs de sa ferme.
Post Scriptum :
Cette fonctionnalité n’est pas dépendante du type de site mais du type de ferme. Ainsi, un Team Site hébergé dans une ferme MOSS peut bénéficier de cette fonction.
Related Links :
- How to really clear the BlobCache on all servers in the farm
- How can I make my web site faster with caching ?
- BlobCache – MOSS
- Disk-Based Caching for Binary Large Objects
- Configuring BLOB Caching for SharePoint Web Application
- BlobCache woes, how to work (clean) correctly with it, and what to expect when using it with SharePoint features
- MOSS 2007 Blob caching and it's limitations
- Sharepoint Web performance optimization
Romelard Fabrice [MVP]
Commentaires
Enregistrer un commentaire