Mise en cache dans Office SharePoint Server 2007
Mise à jour : 2009-04-23
Dans cet article :
Mise en cache de sortie
Mise en cache d'objets
Mise en cache sur disque des objets blob
Microsoft Office SharePoint Server 2007 est fourni avec des fonctions avancées de mise en cache pour optimiser les performances des sites Web. Cet article décrit les différents types de mise en cache disponibles et comment optimiser la mise en cache pour vos besoins de déploiement spécifiques.
Le tableau suivant montre les types de mise en cache disponibles et l'emplacement d'implémentation de chaque type.
Type de mise en cache à utiliser | Où | Remarques |
---|---|---|
Mise en cache de sortie et profils de cache |
Niveau de page individuelle |
Idéal pour les sites Web faisant l'objet d'un accès intensif qui n'ont pas besoin de présenter fréquemment un nouveau contenu. |
Mise en cache d'objets |
Contrôle de composant WebPart individuel, contrôle de champ et niveau de contenu |
Inclut la mise en cache des requêtes de liste croisée et la mise en cache de la navigation |
Mise en cache sur disque des objets blob (Binary Large OBject) |
Niveau blob individuel |
Prend en charge les fichiers images, audio, code, .gif, .jpg, .js, .css et autres stockés en tant qu'objets blob |
Mise en cache de sortie
Office SharePoint Server 2007 utilise la technologie de mise en cache de sortie native d'ASP.NET 2.0 pour gérer quand et comment le contenu de page est servi. Lorsque la mise en cache de sortie est utilisée correctement, elle peut améliorer considérablement le débit et le temps de réponse utilisateur.
Si un site est activé avec ASP.NET, le balisage HTML généré au moment de l'exécution par chaque page Web est mis en cache par le cache de sortie ASP.NET en fonction du profil de cache spécifié. Sur un site Web faisant l'objet d'un accès intensif, la mise en cache des pages fréquemment utilisées pendant même une minute à la fois peut entraîner des gains de débit notables. Pendant qu'une page est mise en cache par le cache de sortie, les demandes suivantes de cette page par les utilisateurs possédant des autorisations similaires sont servies à partir du cache de sortie sans exécution du code ou du contrôle qui l'a créée pendant la durée spécifiée du cache.
Remarque : |
---|
La mise en cache de sortie peut être utilisée uniquement sur un site ou une collection de sites si la fonctionnalité Infrastructure de publication Office SharePoint Server a été activée pour la collection de sites et si la fonctionnalité Publication Office SharePoint Server a été activée pour le site. Vous activez et configurez la mise en cache de sortie pour la collection de sites en cliquant sur Cache de sortie de la collection de sites dans la page Paramètres du site correspondant à la collection de sites, puis en cliquant sur Cache de sortie du site dans la page Paramètres du site pour les sites. Si la fonctionnalité Infrastructure de publication Office SharePoint Server n'a pas été activée pour la collection de sites et si la fonctionnalité Publication Office SharePoint Server n'a pas été activée pour le site, les liens Cache de sortie de la collection de sites et Cache de sortie du site n'apparaissent pas dans la page Paramètres du site, et vous ne pouvez pas activer ou configurer la mise en cache de sortie. |
Pour plus d'informations sur l'activation de la mise en cache de sortie, voir Mise en cache de sortie et profils de cache (https://go.microsoft.com/fwlink/?linkid=78928&clcid=0x40C).
Considérations relatives à la mise en cache de sortie
Avant de choisir d'utiliser la mise en cache de sortie pour améliorer les performances de la restitution des pages et des éléments de page, tenez compte des avantages et des limitations liés à la mise en œuvre d'une mise en cache de sortie.
Les avantages sont les suivants :
La mise en cache de sortie est idéale pour les sites Web ne nécessitant pas de mises à jour de contenu toutes les minutes. Dans cet environnement, la mise en cache de sortie peut être affichée pour les différents utilisateurs sans accéder à la base de données ou réexécuter le code ou les contrôles qui ont créé à l'origine le balisage HTML de la page Web.
La mise en cache de sortie peut être utilisée pour les utilisateurs authentifiés et anonymes, mais elle est plus efficace lorsque l'accès est anonyme. Par conséquent, autorisez l'accès des utilisateurs anonymes chaque fois qu'il est approprié et possible pour l'ensemble ou une partie du site Web.
Les limitations sont les suivantes :
La mise en cache de sortie consomme de la mémoire supplémentaire pour mettre en cache le balisage HTML de chaque page mise en cache. Veillez à installer une quantité suffisante de mémoire physique pour éviter les problèmes de mémoire d'échange système ou autre.
Lorsqu'elle est utilisée avec plusieurs serveurs Web frontaux, la mise en cache de sortie peut avoir des répercussions sur la cohérence. Vous pouvez configurer un profil de cache pour qu'il ne vérifie pas les mises à jour pour chaque demande et, par exemple, lui demander qu'il ignore les modifications apportées à la version de la page Web dans le cache de sortie pendant 60 secondes après la mise à jour de la page d'origine. Si votre topologie contient deux serveurs Web et en fonction de l'équilibreur de charge utilisé pour acheminer la demande de l'utilisateur, un lecteur peut constater des incohérences dans le contenu si la page est restituée par un serveur, puis une demande ultérieure est acheminée vers un deuxième serveur dans cette fenêtre de 60 secondes. Si la vérification des modifications est activée dans le profil de cache, cela réduira l'efficacité de la mise en cache de sortie.
Si la mise en cache de sortie est activée pour les utilisateurs avec autorisation d'écriture pour une collection de sites, ces utilisateurs ne peuvent pas voir les données les plus récentes sur les pages Web de cette collection de sites tant que les pages mises en cache de sortie n'ont pas expiré. En règle générale, cela n'a pas d'incidence directe sur le contenu d'une page Web que l'utilisateur est en train de modifier ou d'afficher, mais il se peut que cela touche les données de cumul d'une liste ou d'une bibliothèque, par exemple les données présentées à partir d'un composant WebPart de bibliothèque de documents. Par conséquent, vous devez activer la mise en cache de sortie uniquement pour les utilisateurs disposant d'autorisations de lecture seule si vous souhaitez être sûr que les utilisateurs disposant d'autorisations d'écriture peuvent afficher les informations actuelles.
Comportement de la mise en cache de sortie
Vous pouvez spécifier le comportement de la mise en cache de sortie aux niveaux suivants :
Collection de sites
Site
Mise en page
L'administrateur d'une batterie de serveurs, d'une collection de sites ou d'un site spécifique peut optimiser le comportement de mise en cache pour le niveau à partir duquel il dispose de privilèges d'administrateur en appliquant des profils de cache différents. Par exemple, la page d'accueil de votre site est peut-être la page la plus visitée, et il est possible d'utiliser une mise en page unique pour la page d'accueil, de sorte que vous pouvez appliquer un profil de cache spécial à cette mise en page unique et ignorer le comportement de la mise en cache de toute la collection de sites. En revanche, vous pouvez configurer le profil de cache de la mise en page avec une durée en cache plus longue. Cela vous permet d'optimiser l'actualisation des données là où vous pouvez vous permettre de faire des compromis en terme de performance. Pour les autres pages du système, vous pouvez utiliser un autre profil de cache dont la durée en cache est plus courte.
Mise en cache des résultats de recherche
Dans un environnement employant l'authentification des utilisateurs, vous ne devez jamais mettre en cache les résultats de recherche. Cela peut permettre la divulgation d'informations confidentielles à des utilisateurs non autorisés. Une requête de recherche filtre son jeu de résultats pour afficher uniquement les informations à la disposition de l'utilisateur actuel. Cependant, lorsque vous mettez en cache les résultats de recherche, le code qui filtre le jeu de résultats est ignoré et un utilisateur peut ainsi consulter des résultats auxquels il ne devrait pas avoir accès. En revanche, dans un environnement anonyme, il ne s'agit pas d'un problème car tous les résultats de recherche sont issus de demandes non authentifiées.
Si la mise en cache de sortie est activée sur la collection de sites, vous pouvez désactiver la mise en page de résultats de recherche en procédant comme suit.
Désactiver la mise en page des résultats de recherche
Dans le menu Actions du site du site de niveau supérieur de la collection de sites, pointez sur Paramètres du site, puis cliquez sur Modifier tous les paramètres du site.
Dans la page Paramètres du site, dans la section Administration de la collection de sites, cliquez sur Cache de sortie de la collection de sites.
Dans la page Paramètres du cache de sortie de la collection de sites, activez la case à cocher Les mises en page peuvent utiliser un profil de sortie de pages différent, puis cliquez sur OK.
Dans la page Paramètres du site, cliquez sur Pages maîtres et mises en page dans la section Galeries.
Dans la page Galerie de pages maîtres, pointez sur SearchResults.aspx, cliquez sur la flèche qui apparaît, cliquez sur Modifier les propriétés dans le menu qui s'affiche, puis cliquez sur OK dans la boîte de dialogue qui apparaît.
Dans la page Galerie de pages maîtres : SearchResults, dans la liste Profil de cache authentifié, cliquez sur Désactivé, puis cliquez sur OK.
Dans la Galerie de pages maîtres, pointez sur SearchResults.aspx, cliquez sur la flèche qui apparaît, puis cliquez sur Archiver dans le menu qui s'affiche.
Dans la page Archiver, sélectionnez Version principale (publier), puis cliquez sur OK. Les résultats de la recherche qui utilisent cette mise en page ne sont plus mis en cache.
Limite d'octets privés ASP.NET
Si la mise en cache de sortie est activée, il se peut que vous souhaitiez étendre la limite d'ASP.NET 2.0 par défaut sur les octets privés. Cette limite indique à ASP.NET le moment où doit se produire le vidage de son cache de sortie. Un vidage prématuré entraîne une dégradation inutile des performances. Pour plus d'informations, voir cache, élément de mise en cache (schéma des paramètres ASP.NET) (https://msdn.microsoft.com/fr-fr/library/ms228248.aspx?amp%3bclcid=0x40C).
Versions de pages mises en cache
Certaines pages Web peuvent afficher des versions légèrement différentes en fonction des utilisateurs ou d'une autre logique métier. Vous pouvez étendre la mise en cache de sortie via l4API programmable pour répondre à la demande d'une mise en cache différente des éléments. Pour plus d'informations, voir Comment : étendre la mise en cache à l'aide du gestionnaire d'événements VaryByCustom Event (https://go.microsoft.com/fwlink/?linkid=78935&clcid=0x40C) .
Mise en cache de sortie et flux RSS du composant WebPart de requête de contenu
Le composant WebPart de requête de contenu offre la possibilité de fournir des flux RSS des résultats qu'il affiche. Ce flux RSS est généré par une page .aspx sur le serveur, qui produit le code XML du flux RSS basé sur les mêmes résultats affichés par le composant WebPart de requête de contenu.
Étant donné que les clients RSS demandent souvent un flux régulier à partir du serveur, par exemple toutes les 30 minutes, il est important que la génération de flux RSS soit performante. Par conséquent, la page .aspx de flux RSS implémente la mise en cache de sortie. Dans la source du fichier .aspx figure la ligne suivante :
<%@ OutputCache Duration="300" VaryByParam="xsl;web;page;wp" VaryByCustom="rights;feedresults"%>
Cela signifie que, par défaut, le système met en cache les flux RSS de requêtes de contenu pendant cinq minutes (300 secondes), met en cache des versions uniques des flux RSS pour chaque composant WebPart de requête de contenu et met en cache des versions uniques des flux RSS pour les utilisateurs ayant des autorisations différentes et différents résultats de flux.
Pour personnaliser cette mise en cache de sortie, vous pouvez créer votre propre page .aspx de flux qui implémente la même logique, mais dont les paramètres de cache de sortie sont différents. Les composants WebPart peuvent alors faire référence à votre page .aspx de flux personnalisé au lieu de la page par défaut.
En outre, il est possible de désactiver l'ensemble du site du Centre de recherche pour désactiver le cache de sortie si d'autres pages de ce site sont sensibles au même problème de sécurité potentiel. Pour désactiver le cache de sortie pour le site du Centre de recherche, procédez comme suit :
Désactiver le cache de sortie pour le site du Centre de recherche
Dans le menu Actions du site du site de niveau supérieur de la collection de sites, pointez sur Paramètres du site, puis cliquez sur Modifier tous les paramètres du site.
Dans la page Paramètres du site, dans la section Administration de la collection de sites, cliquez sur Cache de sortie de la collection de sites.
Dans la page Paramètres du cache de sortie de la collection de sites, dans la section Stratégie de cache de sortie de pages, activez la case à cocher Les sites de publication peuvent utiliser un profil de cache de sortie de pages différent, puis cliquez sur OK.
Dans la barre de navigation supérieure, cliquez sur l'onglet Recherche.
Dans le menu Actions du site du Centre de recherche, pointez sur Paramètres du site, puis cliquez sur Modifier tous les paramètres du site.
Dans la page Paramètres du site pour le site du Centre de recherche, dans la section Administration du site, cliquez sur Cache de sortie du site.
Dans la page Paramètres du cache de sortie du site de publication, dans la section Profil de cache authentifié, sélectionnez la case d'option Hériter du profil « Désactivé ».
Vous pouvez éventuellement activer la case à cocher Appliquer ces paramètres à tous les sous-sites si vous souhaitez désactiver le cache de sortie authentifié pour tous les sous-sites.
Mise en cache d'objets
Office SharePoint Server 2007 prend en charge la mise en cache de certains éléments de page, tels que les données de navigation et les données consultées par l'intermédiaire de requêtes de liste croisée. La mise en cache des éléments de page réduit la nécessité de récupérer les données de champ de la base de données à chaque rendu de page. Le système de mise en cache met également en cache les champs de données complets d'une page, en excluant les données pour les éventuels contrôles de composants WebPart sur la page.
Réglage du cache d'objets
La taille par défaut de la mise en cache d'objets est définie à 100 Mo par collection de sites, mais vous pouvez modifier ce paramètre pour chaque collection de sites selon les caractéristiques du site Web. Vous pouvez utiliser un ensemble de compteurs de performance pour régler la taille du cache d'objets. Le nom de l'objet de compteur de performance est Objet de cache de publication SharePoint. Selon le taux d'accès au cache et l'évolution des compteurs d'abandon d'objets, vous pouvez définir la taille du cache d'objets en conséquence. Tenez compte des éléments suivants lorsque vous définissez cette limite :
Commencez par une faible valeur (telle que 200 Mo) et surveillez le taux d'accès au cache et le compteur d'abandon d'objets. Un taux d'accès supérieur à 90 % et un taux d'abandon d'objets faible indiquent en général que la taille actuelle est appropriée. Toutefois, vous devez également mesurer le temps de réponse utilisateur dans les opérations essentielles pour ajuster ce paramètre.
Si vous définissez une taille trop importante, vous gaspillez peut-être une mémoire précieuse pour les autres caches, tels que le cache de sortie ASP.NET s'il est utilisé. Certains composants WebPart, tels que le composant WebPart de requête de contenu, stockent leur feuille de style XSLT dans le cache de sortie. Si la taille du cache d'objets est trop grande, il se peut qu'ASP.NET vide la mémoire cache de sortie pour libérer de l'espace. L'utilisation du processeur peut augmenter après le vidage. Cette considération est particulièrement importante pour des systèmes d'exploitation sur 32 bits, car chaque processus de travail est limité à un espace mémoire de 2 Go pour l'application. Si vous définissez une limite de taille trop importante pour le cache d'objets, le processus de travail des services Internet (IIS) (w3wp) peut effectivement manquer de mémoire.
Mise en cache des requêtes de liste croisée
Le cache d'objets sert également à placer dans le cache les éléments récupérés dans le cadre de requêtes de liste croisée. Ces requêtes regroupent des éléments provenant de listes et sites divers de votre collection de sites. L'utilisation la plus courante de ces requêtes concerne les composants WebPart de requête de contenu. Chaque utilisation de la requête de liste croisée impose un aller-retour vers le serveur de base de données. À l'aide du cache d'objets, vous pouvez réduire considérablement le nombre d'allers-retours requis pour servir les requêtes de liste croisée et améliorer ainsi les performances des fonctionnalités telles que le composant WebPart de requête de contenu qui présente les résultats de requête de liste croisée.
Vérification des mises à jour
Vous pouvez configurer le cache de requête de liste croisée pour vérifier les mises à jour et de manière conditionnelle actualiser le cache de deux façons :
En vérifiant les modifications apportées à la collection de sites. Si aucune modification n'a été apportée, les résultats mis en cache sont utilisés.
En attendant pendant un certain temps, pendant lequel seront utilisés les résultats mis en cache et après lequel une requête sera émise pour actualiser le cache.
Le premier paramètre est utile dans les cas où des modifications fréquentes sont apportées au contenu de la collection de sites affichés par la requête de liste croisée et où il est important que la requête affiche les informations les plus récentes. Par exemple, un site portail intranet de division affiche une requête de liste croisée des documents les plus récents du site. Dans ce site, de nombreux utilisateurs sont des collaborateurs, et il peut être important de pouvoir afficher les documents les plus récents publiés par les utilisateurs.
Le deuxième paramètre est utile dans les cas où les modifications apportées au contenu de la collection de sites ne sont pas fréquentes et où il est moins important que la requête affiche des informations récentes. Par exemple, un site Internet public affiche une requête de liste croisée des pages d'article les plus récentes publiées dans le site. Dans ce site, la plupart des utilisateurs sont des utilisateurs anonymes ou des utilisateurs authentifiés avec des autorisations en lecture seule. Dans ce cas, un retard de quelques minutes pour les articles les plus récents n'est pas critique.
Vous pouvez configurer le cache de requête de liste croisée en effectuant la procédure suivante.
Configurer le cache des requêtes de liste croisée
Dans le menu Actions du site de la page d'accueil du site, pointez sur Paramètres du site, puis cliquez sur Modifier tous les paramètres du site.
Dans la page Paramètres du site, dans la section Administration de la collection de sites, cliquez sur Cache d'objets de la collection de sites.
Dans la section Modifications du cache des requêtes de liste croisée, sélectionnez la case d'option appropriée, selon le mode d'actualisation souhaité du cache des requêtes de liste croisée. Si vous sélectionnez l'option Utiliser le résultat en cache d'une requête de liste croisée pendant le nombre de secondes suivant, tapez une valeur dans la zone de texte qui représente le nombre de secondes d'attente avant l'actualisation du cache.
Cliquez sur OK pour enregistrer vos modifications.
Nombre d'éléments à récupérer
Le paramètre multiplicateur de résultats d'une requête de liste croisée gère le nombre d'éléments récupérés et mis en cache. Étant donné que les requêtes de liste croisée peuvent récupérer des éléments pour une variété d'utilisateurs possédant diverses autorisations, il est important de récupérer suffisamment d'éléments de la requête pour que tous les utilisateurs affichent les éléments corrects. Pour vous assurer que tous les utilisateurs affichent les éléments corrects dans les résultats de la requête après découpage de sécurité, le cache des requêtes de liste croisée doit extraire plus de résultats que le nombre demandé à l'origine. Ce paramètre exige un entier qui représente le multiple du nombre d'éléments que doit récupérer le cache des requêtes de liste croisée.
La définition du multiplicateur à un nombre plus important récupère plus d'éléments et consomme plus de mémoire. Un nombre plus élevé est approprié dans un site Web où de nombreux utilisateurs possèdent des autorisations uniques sur des listes et des éléments différents.
La définition du multiplicateur à un nombre plus faible récupère moins d'éléments et consomme moins de mémoire. Un nombre réduit est approprié dans un site Web où les utilisateurs disposent de la même sécurité, par exemple les utilisateurs anonymes sur un site Internet.
Configurer le multiplicateur de résultats d'une requête de liste croisée
Dans le menu Actions du site de la page d'accueil du site, pointez sur Paramètres du site, puis cliquez sur Modifier tous les paramètres du site.
Dans la page Paramètres du site, dans la section Administration de la collection de sites, cliquez sur Cache d'objets de la collection de sites.
Dans la zone Multiplicateur de résultats d'une requête de liste croisée, tapez un nombre qui représente le multiple des éléments récupérés par la requête de liste croisée.
Cliquez sur OK pour enregistrer vos modifications.
Mise en cache sur disque des objets blob
La mise en cache sur disque gère la mise en cache des objets blob (Binary large Objects), tels que les fichiers image, audio, vidéo et les fragments de code. La mise en cache sur disque réduit le besoin d'allers-retours à la base de données pour accéder aux objets blob. Les objets blob sont extraits de la base de données une fois et sont stockés sur les serveurs Web. Toute demande est servie à partir du cache sur disque et tronquée d'après la sécurité.
Considérations
Vous pouvez configurer la taille du cache sur disque pour chaque application Web. La valeur minimale est 1 Go et vous pouvez l'augmenter par multiples d'un gigaoctet. Assurez-vous que l'espace disque est suffisant pour votre application.
Un certain nombre de paramètres peuvent être définis sur le cache sur disque. Deux paramètres sont à retenir :
Max-age spécifie la durée maximale pendant laquelle le navigateur client met en cache les objets BLOB téléchargés sur l'ordinateur client. Si les éléments téléchargés n'ont pas expiré depuis le dernier téléchargement, ces mêmes éléments ne sont pas redemandés tant que le cache n'a pas expiré. L'attribut max-age est défini par défaut sur 86 400 secondes (soit 24 heures), mais il peut être défini sur une période de 0 ou plus. Plus cette valeur est grande, plus le navigateur met de temps pour récupérer les éléments mis à jour.
Path spécifie sous la forme d'une expression régulière les fichiers mis en cache en fonction de l'extension de fichier. Par défaut, l'extension de fichier inclut gif, jpg, png, css et js. Si vos pages Web font référence à des extensions de fichier spéciales, vous devez ajouter les extensions dans le cache.
La mise en cache sur disque s'applique uniquement aux éléments d'une bibliothèque de documents. Si vous stockez des ressources en dehors d'une bibliothèque de documents, par exemple un dossier sous un site, les éléments ne sont pas gérés par le cache sur disque même si vous l'activez pour l'application Web tout entière. Il s'agit d'une considération importante si vous souhaitez gérer le paramètre max-age des ressources blob téléchargées sur le navigateur client. Par défaut, l'attribut max-age de tous les éléments stockés dans Office SharePoint Server est défini à zéro.