Maintenance des données de la mémoire cache

Du fait que la mise en cache implique la création et la sauvegarde d'une copie du fichier servi, certaines opérations sont nécessaires au fonctionnement de la mémoire cache. Le rafraîchissement de la mémoire cache permet de mettre à jour les données et d'invalider les fichiers qui ne sont pas synchronisés avec les fichiers du serveur origine. La procédure d'expiration des fichiers est décrite à la section Expiration des fichiers. Les fichiers invalidés ou inutilisés doivent également être supprimés de la mémoire cache pour faire place à des nouveaux fichiers. La procédure de nettoyage de la mémoire cache est décrite à la section Récupération de place.

Expiration des fichiers

Préserver la cohérence entre les objets en mémoire cache et les objets stockés sur le serveur de contenu consiste à s'assurer que les informations en mémoire cache sont à jour. Pour chaque document ou autre objet mis en mémoire cache, Caching Proxy calcule le délai d'expiration de l'objet.

Pour les pages HTTP, l'en-tête du document, généré par le serveur de contenu, contient les informations d'expiration.

Le protocole FTP ne fournissant pas d'informations équivalentes sur l'expiration, Caching Proxy génère lui-même un en-tête « Last-Modified: » pour les fichiers FTP, sur la base d'informations du répertoire FTP de chaque fichier et utilise ces informations pour calculer le délai d'expiration. Si le serveur proxy ne peut pas obtenir du serveur FTP les informations de répertoire concernant le fichier, la valeur par défaut correspondant à l'URL FTP est utilisée. Par ailleurs, dans la mesure où il n'existe pas de format standard de date pour les serveurs FTP, Caching Proxy peut ne pas comprendre la date et l'heure renvoyées par certains serveurs FTP. Dans ce cas, l'heure d'expiration par défaut du serveur proxy est utilisée. Cela permet au proxy de gérer la mise en mémoire cache de pages HTTP et de fichiers FTP d'une manière similaire.

L'expiration peut être indiquée par un serveur de contenu de l'une des manières suivantes (par ordre de préférence) :

  1. Le serveur de contenu définit un en-tête Cache-control: s-maxage= n. Cet en-tête indique au proxy que l'objet, après réception, est valide pendant une durée de n secondes.
  2. Le serveur de contenu définit un en-tête Cache-control: max-age=n. Cet en-tête indique au proxy que l'objet, après réception, est valide pendant une durée de n secondes.
  3. Le serveur de contenu définit un en-tête Expires: n. Cet en-tête indique au proxy que l'objet est valide pendant la durée n indiquée.
  4. Le serveur de contenu indique la date de dernière modification, à l'aide de l'en-tête Last-Modified: n. Le serveur proxy calcule le temps qui s'est écoulé depuis la dernière modification du document, multiplie cette valeur par le facteur de dernière modification de la mémoire cache défini dans le fichier de configuration, et considère que le document est valide pendant cette période. Par exemple si le serveur de contenu indique que le document a été modifié pour la dernière fois il y a une semaine (sept jours) et que le facteur de dernière modification de la mémoire cache est 0,14, le serveur proxy considère que le document est valide pendant un jour environ. Pour obtenir des instructions sur la définition du facteur de dernière modification de la mémoire cache, voir Configuration de la validité de la mémoire cache.
  5. Si aucune des informations ci-dessus n'est indiquée par le serveur de données, Caching Proxy recherche le paramètre d'expiration par défaut de la mémoire cache correspondant à l'URL en cours et utilise celui-ci en tant que délai d'expiration. Pour obtenir des instructions sur la définition des valeurs d'expiration par défaut de la mémoire cache, voir Configuration de la validité de la mémoire cache.

Après avoir calculé le délai d'expiration en utilisant la procédure décrite ci-dessus, Caching Proxy vérifie si une valeur de conservation minimale s'applique à cette URL. Si tel est le cas et que la valeur indiquée est supérieure au délai d'expiration calculé, la valeur de conservation minimale est utilisée en tant que délai d'expiration. Cela est vrai même si Caching Proxy calcule un délai d'expiration de 0 minute pour un document. En conséquence, pour éviter de fournir des données périmées, veillez à utiliser le paramètre Minimum Hold. Pour définir la valeur de ce paramètre, utilisez la directive CacheMinHold ou le paramètre Configuration de la mémoire cache –> Paramètres d'expiration de la mémoire cache : Expiration d'URL. Pour plus d'informations, voir Configuration de la validité de la mémoire cache.

La valeur finale du délai d'expiration est comparée à celle indiquée dans le paramètre définissant la marge de la durée. Si la valeur d'expiration est supérieure à la marge de la durée, le document est mis en mémoire cache ; dans le cas contraire, il ne l'est pas. Pour définir la valeur de la durée de la mémoire cache, recourez à la directive CacheTimeMargin ou aux instructions de la section Configuration de la validité de la mémoire cache.

Si le document est trouvé dans la mémoire cache et qu'il a expiré, Caching Proxy envoie au serveur de contenu une demande spéciale if-modified-since. A la suite de cette demande, le serveur de contenu envoie le document si celui-ci a été modifié depuis que le proxy l'a reçu pour la dernière fois. Si le document n'a pas été modifié, le serveur de contenu envoie un message contenant cette information et ne renvoie pas la page entière. Dans ce cas, le proxy fournit le document mis en mémoire cache. Dans le cas de fichiers FTP, le serveur proxy simule la demande « if-modified-since ». S'il détermine que le fichier n'a pas été modifié sur le serveur FTP, il extrait le fichier de la mémoire cache. Sinon, il récupère la version la plus récente sur le serveur FTP.

Informations complémentaires sur la validité de la mémoire cache

Définition des dates avec FTP

S'applique aux configurations avec proxy d'acheminement uniquement.

Dans la mesure où le protocole FTP n'utilise pas des définitions aussi strictes que le protocole HTTP en matière de date et d'heure, plusieurs facteurs peuvent entraîner une légère différence entre les données de l'en-tête Last-Modified générées par le proxy pour les fichiers FTP et la date réelle du fichier. Ces facteurs comprennent les éléments suivants :

Lorsqu'un fichier FTP arrive à expiration en mémoire cache, le proxy simule le processus de revalidation HTTP if-modified-since pour ce fichier. Au cours de cette opération, il exécute de nouveau la commande FTP LIST pour le fichier demandé, analyse la date du fichier à partir de la réponse renvoyée par le serveur FTP et compare cette date à celle générée par le serveur proxy pour l'en-tête Last-Modified, au moment où le fichier a été extrait. Si la date du fichier n'a pas changé, le serveur proxy indique que le fichier FTP mis en mémoire cache a été revalidé ; il définit une nouvelle date d'expiration et transmet le fichier conservé en mémoire cache plutôt que celui stocké sur le serveur FTP. Si les deux dates du fichier ne concordent pas, le proxy extrait de nouveau le fichier du serveur FTP et stocke cette nouvelle version en mémoire cache, avec la nouvelle date associée.

Il n'est pas toujours possible d'extraire les informations de répertoire pour le fichier sur le serveur FTP. Si le proxy ne parvient pas à déterminer la date du fichier FTP, il ne génère pas l'en-tête « Last-Modified » associé. A la place, il utilise la valeur indiquée pour la directive CacheDefaultExpiry associée à l'adresse URL afin de déterminer la durée de stockage du fichier en mémoire cache. A l'issue de cette période, le proxy extrait toujours une nouvelle version du fichier sur le serveur FTP de nouveau. Si des fichiers FTP mis en mémoire cache utilisent très souvent la directive CacheDefaultExpiry et qu'ils sont fréquemment consultés (trafic réseau élevé), envisagez d'indiquer une valeur CacheDefaultExpiry plus précise pour conserver plus longtemps ces fichiers en mémoire cache.

Pour spécifier les paramètres du délai d'expiration de la mémoire cache, dans les formulaires de configuration et d'administration, sélectionnez Configuration de la mémoire cache –> Paramètres d'expiration de la mémoire cache –> Délai des fichiers mis en cache. Pour plus d'informations sur la définition de la durée du stockage en mémoire cache, voir Expiration des fichiers.

Configuration de la validité de la mémoire cache

Pour spécifier les délais d'expiration des fichiers en mémoire cache, dans les formulaires de configuration et d'administration, sélectionnez Configuration de la mémoire cache –> Paramètres d'expiration de la mémoire cache. Les formulaires suivants sont utiles.

Expiration basée sur l'URL

Utilisez ce formulaire pour définir le délai minimal pendant lequel les fichiers sont conservés en mémoire cache, en fonction de leur URL. Vous pouvez indiquer un comportement différent de mise en mémoire cache pour chaque modèle de demande d'URL.

Pour définir le délai d'expiration des fichiers basés sur l'URL en éditant le fichier de configuration du proxy, voir les sections de référence dans l'Annexe B. Directives du fichier de configuration pour les directives suivantes :

Paramètres d'expiration par défaut

Le formulaire Paramètres d'expiration de la mémoire cache permet de définir les paramètres d'expiration par défaut des fichiers utilisés ou inutilisés. Vous pouvez définir des valeurs différentes pour les fichiers HTTP, FTP et Gopher et des valeurs différentes pour les fichiers utilisés et inutilisés.

Ce formulaire contient également des options supplémentaires relatives au délai d'expiration des fichiers :

Pour définir les paramètres d'expiration par défaut en modifiant le fichier de configuration du serveur proxy, reportez-vous aux pages de référence des directives suivantes :

Paramètres du facteur de dernière modification

Le formulaire Facteur de dernière modification permet de définir la valeur utilisée par le proxy pour calculer une date d'expiration pour les fichiers en mémoire cache dont les en-têtes ne comportent pas de date d'expiration. Vous pouvez définir des valeurs différentes pour les fichiers correspondant à des modèles de demandes différents. Le premier modèle correspondant est utilisé pour calculer la date d'expiration.

Pour définir le facteur de dernière modification en éditant directement le fichier de configuration du proxy, voir CacheLastModifiedFactor — Spécifie la valeur permettant de déterminer les dates d'expiration.

Délai de conservation en mémoire cache

Le formulaire de configuration Délai de conservation des fichiers en mémoire cache permet de définir la durée maximale pendant laquelle un fichier peut rester en mémoire cache. Ces délais sont définis sur la base des modèles de demandes et vous pouvez spécifier quels fichiers éliminer ou revalider une fois ce délai écoulé. Ces paramètres permettent de gérer les fichiers dont la date d'expiration est non valide ou dont le délai d'expiration est très long.

Pour définir une limite maximale pour le délai d'expiration des fichiers en mémoire cache en éditant le fichier de configuration du proxy, consultez les éléments suivants :

Récupération de place

Dans le but de conserver en mémoire cache les URL les plus utilisées et de réduire l'utilisation des ressources du système, Caching Proxy met en oeuvre le processus de nettoyage, appelé récupération de place, au cours duquel les fichiers anciens ou inutilisés sont supprimés de la mémoire cache afin de libérer de l'espace pour les fichiers plus récents.

Le processus de récupération de place examine les fichiers dans le répertoire de la mémoire cache et tente d'éliminer les fichiers arrivés à expiration pour réduire la taille de la mémoire et ménager de l'espace pour les nouveaux fichiers. La récupération de place s'effectue automatiquement mais certains paramètres peuvent être configurés pour personnaliser le processus en fonction des besoins.

Configuration de la récupération de place

Pour configurer la récupération de place dans les formulaires de configuration et d'administration, sélectionnez Configuration de la mémoire cache –> Paramètres de la récupération de place. Ce formulaire permet de définir la cote d'alerte supérieure et la cote d'alerte inférieure, qui déterminent le moment du lancement ou de l'arrêt de la récupération de place. Lorsque la quantité d'espace utilisée dans la mémoire cache atteint ou dépasse le pourcentage défini pour la cote d'alerte supérieure, la récupération de place commence. Ce processus continue jusqu'à ce que le pourcentage d'espace utilisé en mémoire cache soit inférieur ou égal à la valeur définie pour la cote d'alerte inférieure.

Vous avez le choix entre deux algorithmes de récupération de place. L'algorithme responsetime optimise le temps requis pour répondre aux utilisateurs en supprimant les fichiers volumineux de la mémoire cache. L'algorithme bandwidth optimise l'utilisation de la largeur de bande du réseau en supprimant les petits fichiers de la mémoire cache. Choisissez l'un des deux ou une combinaison des deux.

Pour définir la récupération de place en modifiant le fichier de configuration du serveur proxy, voir les sections de référence des directives suivantes :