Partager via


Optimisation de la mise en cache BLOB pour les environnements de réseau étendu (SharePoint Server 2010)

 

S’applique à : SharePoint Server 2010

Dernière rubrique modifiée : 2016-11-30

Cet article explique comment utilise la mise en cache BLOB dans Produits Microsoft SharePoint 2010 pour les environnements de réseau étendu.

On fait généralement appel à la mise en cache afin d’améliorer le débit dans le pipeline de rendu, du moment où une demande est reçue au niveau du serveur jusqu’au moment où une réponse commence à être renvoyée à l’ordinateur client. Bien qu’il s’agisse d’un aspect important des performances globales de votre site, cette section est axée sur la mise en cache applicable aux éléments suivants :

  • l’impact de la configuration du serveur sur la mise en cache sur les clients ;

  • le contrôle de la taille des éléments transmis sur le réseau du serveur vers le client.

À propos du cache BLOB

Le cache BLOB est un mécanisme disponible uniquement avec les fonctionnalités de publication de SharePoint Server 2010. Il convient donc parfaitement aux sites de portails d’entreprises basés sur le modèle de site Portail de collaboration et aux sites Internet basés sur le modèle de site Portail de publication. Le cache BLOB vous permet de configurer des directives de mise en cache associées à des éléments délivrés à partir de listes de sites de publication, par exemple la bibliothèque Page et Images de la collection de sites. Lorsque le navigateur sur l’ordinateur client rencontre une directive de mise en cache, il détecte que l’élément qu’il extrait peut être enregistré localement et n’a pas besoin d’être redemandé tant que la directive de mise en cache n’a pas expiré. Dans un environnement distribué géographiquement, cette fonctionnalité est importante car elle permet de réduire le nombre d’éléments demandés et envoyés sur le réseau.

Lorsque le cache BLOB dans SharePoint Server 2010 est activé, deux choses différentes se produisent. Tout d’abord, chaque fois qu’un élément pouvant être mis en cache est demandé, SharePoint Server 2010 effectue une recherche sur le disque dur du serveur Web ayant reçu la demande afin de déterminer s’il existe une copie locale. Si c’est le cas, le fichier est envoyé à l’utilisateur directement à partir du disque dur local. Dans le cas contraire, une copie de l’élément est créée à partir de la base de données SQL où il est stocké, puis l’élément est envoyé à l’utilisateur ayant émis la demande. Après cela, toutes les demandes portant sur cet élément seront satisfaites directement depuis le serveur Web, jusqu’à ce que la valeur de mise en cache de l’élément indique que celui-ci a expiré. Les performances de la batterie de serveurs sont ainsi améliorées grâce à la réduction des conflits sur le serveur de bases de données.

L’activation de la mise en cache BLOB permet également d’ajouter un en-tête de capacité de mise en cache à l’élément lorsqu’il est envoyé au client. Cet en-tête indique au navigateur la durée pendant laquelle l’élément doit être mis en cache. Par exemple, si une image a une valeur de capacité de mise en cache de trois jours, le navigateur utilise la copie de l’image stockée dans son cache local si cette image est redemandée dans les trois jours.

Utilisation de Fiddler pour recueillir des données concernant le cache BLOB

Lors des tests de votre site visant à identifier les éléments mis en cache et la façon dont ils sont mis en cache, vous pouvez utiliser une application de débogage gratuite nommée Fiddler (éventuellement en anglais) (http://www.fiddlertool.com). La capture d’écran suivante montre une capture Fiddler sur un site SharePoint simple utilisé pour la publication. Ce site a été créé à l’aide du modèle de site Portail de collaboration par défaut. Du contenu textuel supplémentaire a été ajouté à la page et plusieurs images ont été ajoutées à la page maître.

Résultats de l’outil Fiddler

L’application Fiddler fournit plusieurs informations importantes.

  • La colonne # sur la gauche indique qu’un total de 44 demandes HTTP ont été effectuées du navigateur vers le serveur pour afficher la page.

  • La colonne Result contient le code de résultat HTTP renvoyé par la demande ; un résultat de 200 signifie que l’extraction de l’élément a réussi.

  • La colonne URL indique l’élément spécifique demandé.

  • La colonne Body indique la taille de chaque élément.

  • La colonne Caching indique la directive de mise en cache associée à chaque élément. Les données de cette colonne montrent que plusieurs éléments sont associés à une directive de mise en cache. ; autrement dit, ils ont un attribut d’âge maximal supérieur à 0. Les directives de mise en cache sont exprimées en secondes, ce qui signifie que pour la page illustrée plusieurs éléments sont configurés de façon à être mis en cache pendant 365 jours (60 secondes dans une minute, 60 minutes dans une heure, 24 heures dans une journée = 60x60x24 = 86 400x365 = 31 536 000).

Notez que les éléments ayant cette directive de mise en cache résident tous dans le répertoire _layouts. Ce paramètre de cache leur est associé à cause de la manière dont le répertoire virtuel _layouts/images est configuré dans les services Internet (IIS). Lorsque vous créez une application Web, SharePoint Server 2010 crée automatiquement plusieurs répertoires virtuels mappés à des données sur les disques physiques du serveur Web. Lorsqu’il crée le répertoire virtuel _layouts/images, il ajoute une directive de mise en cache qui s’applique au répertoire entier. La capture d’écran suivante montre la configuration du répertoire dans le composant logiciel enfichable Gestionnaire des services IIS.

Boîte de dialogue Définir les en-têtes de réponse HTTP communs

Ces éléments étant tous associés à une directive de mise en cache différente de zéro, la prochaine fois que la page sera demandée, le navigateur utilisera la copie de l’élément stockée dans son cache local plutôt que de le redemander au serveur. La capture d’écran suivante montre ce qu’affiche Fiddler lorsque la page est demandée une seconde fois.

Résultats de l’outil Fiddler

Comme le montrent les données de Fiddler, le nombre d’éléments demandés a diminué sensiblement (il est passé de 44 à 11). Il convient de remarquer que le nombre de demandes effectuées peut varier en fonction de la façon dont la page est demandée. Si vous utilisez le bouton Actualiser du navigateur, tous les éléments seront probablement redemandés, qu’il existe ou non une version de l’élément stockée dans le cache local. Inversement, si vous demandez la page en y accédant à l’aide d’un lien ou d’un raccourci, seuls les éléments non stockés dans le cache sont demandés.

Les données Fiddler montrent également que le navigateur effectue une demande au serveur pour les autres images de la page maître qu’il possède déjà dans son cache local ; ceci est indiqué par le code de réponse 304 et signifie que le navigateur a envoyé une demande conditionnelle pour un élément. La réponse 304 signifie que la version stockée sur le serveur n’a pas été modifiée par rapport à celle stockée sur le client et qu’il est par conséquent inutile de la retélécharger. Bien que le fichier n’ait pas été téléchargé sur le réseau, il a tout de même généré un aller-retour vers le serveur afin de déterminer si la copie local est à jour. Dans un environnement dispersé géographiquement, les allers-retours vers le serveur sont coûteux ; l’objectif consiste donc à les réduire le plus possible. Pour cela, il faut ajouter une directive de mise en cache différente de zéro à chacun des éléments restants (autres que la page, qui est toujours renvoyée par le serveur). La fonctionnalité de cache BLOB ajoute cette directive de mise en cache.

Configuration du cache BLOB à l’aide de Web.config

La configuration du cache BLOB s’effectue au moyen du fichier Web.config de l’application Web dans laquelle le cache sera utilisé. Ouvrez le fichier Web.config dans un éditeur de texte tel que le Bloc-notes et recherchez l’entrée BlobCache. Par défaut, elle a la valeur suivante :

<BlobCache location="" path="\.(gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|mov|mp3|mp4|mpeg|mpg|rm|rmvb|wma|wmv)$" maxSize="10" enabled="false" />

La signification des attributs utilisés dans l’élément BlobCache est la suivante :

  • location    Fait référence à l’emplacement sur le lecteur de disque dur du serveur Web où seront stockés les éléments mis en cache.

  • path   Expression regex des genres de fichiers qui doivent être mis en cache.

  • maxSize **   **Taille, en Go, utilisable par le cache.

  • enabled    Affecter la valeur true pour activer le cache BLOB.

L’attribut supplémentaire suivant (non inclus par défaut) est nécessaire afin de définir une valeur d’expiration de mise en cache sur des éléments spécifiques :

  • max-age   Durée, en secondes, pendant laquelle les éléments doivent être mis en cache sur l’ordinateur client.

Lorsque vous affectez une valeur différente de zéro à l’attribut d’âge maximal, les éléments pouvant être mis en cache sont associés à une valeur d’expiration de cache qui évite au navigateur de devoir les télécharger ou même vérifier qu’il possède la version la plus à jour. Par exemple, supposez que vous souhaitez activer la mise en cache et allouer jusqu’à 100 Mo sur le serveur Web pour le stockage des éléments. Ils doivent expirer une fois par jour et, en plus des types prédéfinis mis en cache, les fichiers .htc doivent également être mis en cache. Pour prendre en charge ces exigences, spécifiez les attributs BlobCache suivants :

<BlobCache location="C:\blobcache" path="\.(gif|jpg|png|css|js|htc)$ " maxSize="100" max-age="86400" enabled="true"/>

Notez que cette modification du fichier Web.config doit être apportée sur chaque serveur Web de la batterie. Dans la plupart des cas, le cache BLOB commencera à fonctionner immédiatement, mais il est préférable d’utiliser la commande iisreset lors de l’implémentation des modifications. La capture d’écran suivante montre les données Fiddler pour la même demande de page que celle observée plus haut, mais avec le cache BLOB activé comme décrit ici.

Résultats de l’outil Fiddler

Vous remarquerez que tous les éléments de la bibliothèque /SiteCollectionImages ont désormais un code d’état HTTP de 200, ce qui indique qu’ils ont été téléchargés correctement. De plus, ils sont maintenant tous associés à une directive de mise en cache qui spécifie qu’il n’expireront qu’au bout d’une journée (86 400 secondes). Si la page est redemandée, Fiddler montre qu’aucune des images n’est redemandée ; le nombre total de demandes nécessaires pour afficher cette page est ainsi passé de 44 à trois, et deux des trois demandes restantes concernent simplement la négociation de l’authentification NTLM qui a lieu entre le serveur Web et l’application cliente. La figure suivante montre les données de Fiddler lorsque la page est redemandée.

Résultats de l’outil Fiddler

Considérations supplémentaires lors de l’utilisation du cache BLOB

Veillez également à prendre en compte les points suivants lors de l’utilisation du cache BLOB :

  • Sa configuration requiert un effort supplémentaire car il faut mettre à jour le fichier Web.config sur chaque serveur Web. Néanmoins, les avantages procurés en valent la peine.

  • Examinez le contenu de votre site et déterminez si d’autres types de fichiers doivent également être fournis à partir du cache. Par exemple, les fichiers .htc étant utilisés dans la plupart des sites de publication, il convient d’ajouter ce type de fichier à la liste des types mis en cache.

  • Le cache BLOB fonctionne uniquement sur les éléments stockés dans des bibliothèques SharePoint ; il ne peut pas être utilisé pour mettre en cache du contenu d’autres sources.

  • Par défaut, certaines listes ne fonctionnent pas pour les utilisateurs anonymes. Si des utilisateurs anonymes accèdent au site, des autorisations doivent être configurées manuellement pour les listes suivantes afin que leurs éléments soient mis en cache :

    • Galerie de pages maîtres

    • Bibliothèque de styles

Deux autres options de configuration sont importantes lors de l’utilisation du cache BLOB. La première concerne son effacement. S’il est nécessaire d’effacer le cache BLOB pour un site spécifique, accédez à cette collection de sites, puis cliquez sur le menu Actions du siteParamètres du siteModifier tous les paramètres du site. Dans la liste de tâches Administration de la collection de sites, cliquez sur le Lien de cache d’objets de collection de sites. Dans la section Réinitialiser le cache disque, activez la case à cocher Forcer ce serveur à réinitialiser son cache disque, puis cliquez sur OK.