Améliorer les performances du cache

Vous pouvez améliorer les performances du cache intégré, notamment en gérant les demandes simultanées pour les mêmes données mises en cache, en évitant les retards associés à l’actualisation des réponses mises en cache à partir du serveur d’origine et en vous assurant qu’une réponse est demandée assez souvent pour être mise en cache.

Réduire les foules flash

Les foules Flash se produisent lorsque de nombreux utilisateurs demandent simultanément les mêmes données. Toutes les requêtes d’une foule flash peuvent devenir des ratés de cache si vous avez configuré le cache pour servir les appels uniquement après le téléchargement de l’objet entier.

Les techniques suivantes peuvent réduire ou éliminer les foules flash :

  • PREFETCH : Actualise une réponse positive avant qu’elle n’expire pour s’assurer qu’elle ne devienne jamais périmée ou inactive. Pour plus d’informations, consultez la section « Actualisation d’une réponse avant l’expiration ».
  • Mise enmémoire tampon du cache : commence à servir une réponse à plusieurs clients dès qu’il reçoit l’en-tête de réponse du serveur d’origine, plutôt que d’attendre le téléchargement de la réponse entière. La seule limite du nombre de clients pouvant télécharger une réponse simultanément est les ressources système disponibles. L’appliance Citrix ADC télécharge et envoie des réponses même si le client qui a initié le téléchargement s’arrête avant la fin du téléchargement. Si la taille de la réponse dépasse la taille du cache ou si la réponse est fragilisée, le cache cesse de stocker la réponse, mais le service aux clients n’est pas interrompu.
  • Flash Cache : Flash Cache met en file d’attente les demandes vers le cache et n’autorise qu’une seule requête à atteindre le serveur à la fois.

Pour plus d’informations, consultez la section « Demandes de mise en file d’attente vers le cache ».

Actualiser une réponse avant l’expiration

Pour s’assurer qu’une réponse mise en cache est fraîche chaque fois qu’elle est nécessaire, l’option PREFETCH actualise une réponse avant son délai d’expiration calculé. L’intervalle de préextraction est calculé après réception de la première demande client. À partir de ce moment, l’appliance Citrix ADC actualise la réponse mise en cache à un intervalle de temps que vous configurez dans le paramètre PREFETCH.

Ce paramètre est utile pour les données fréquemment mises à jour entre les demandes. Il ne s’applique pas aux réponses négatives (par exemple, 404 messages).

Pour configurer la préextraction d’un groupe de contenus à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set cache contentgroup <name> -prefetch YES [-prefetchPeriod <seconds> | -prefetchPeriodMilliSec <milliseconds>] [-prefetchMaxPending <positiveInteger>]

*Pour configurer la préextraction d’un groupe de contenus à l’aide de l’interface graphique

Accédez à Optimisation > Mise en cache intégrée > Groupes de contenu, puis sélectionnez le groupe de contenu.

Sous l’onglet Autres, dans le groupe Flash Crowd and Prefetch, sélectionnez l’option Prefetch et spécifiez les valeurs dans les zones de texte Intervalle et Nombre maximal de prérécupération en attente.

Demandes de file d’attente vers le cache

L’option Flash Cache met en file d’attente les demandes qui arrivent simultanément (une foule flash), récupère la réponse et la distribue à tous les clients dont les demandes sont dans la file d’attente. Si, au cours de ce processus, la réponse devient non mise en cache, l’appliance Citrix ADC cesse de fournir la réponse à partir du cache et sert à la place la réponse du serveur d’origine aux clients mis en file d’attente. Si la réponse n’est pas disponible, les clients reçoivent un message d’erreur.

Flash Cache est désactivé par défaut. Vous ne pouvez pas activer Poll Every Time (PET) et Flash Cache sur le même groupe de contenu.

Un inconvénient de Flash Cache est que si le serveur répond avec une erreur (par exemple, un 404 qui est rapidement corrigé), l’erreur est vendue aux clients en attente.

Remarque : si Flash Cache est activé, dans certains cas, l’appliance Citrix ADC ne parvient pas à faire correspondre correctement l’en-tête Accept-Encoding dans la demande client avec l’en-tête Content-Encoding dans la réponse. L’appliance Citrix ADC peut supposer que ces en-têtes correspondent et servent par erreur un appel. Pour contourner le problème, vous pouvez configurer des stratégies de mise en cache intégrée pour interdire le service d’accès aux clients qui n’ont pas d’en-tête Accept-Encoding approprié.

Pour activer Flash Cache à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set cache contentgroup <contentGroupName> -flashcache yes

Pour activer Flash Cache à l’aide de l’interface graphique

Accédez à Optimisation > Mise en cache intégrée > Groupes de contenu, puis sélectionnez le groupe de contenu.

Sous l’onglet Autres, dans le groupe Flash Crowd et Prefetch, sélectionnez l’option Prefetch.

Mettre en cache une réponse après qu’un client arrête un téléchargement

Vous pouvez définir le paramètre Quick Abort pour continuer à mettre en cache une réponse, même si le client arrête une demande avant que la réponse ne soit dans le cache.

Si la taille de la réponse téléchargée est inférieure ou égale à la taille d’Abort rapide, l’appliance Citrix ADC cesse de télécharger la réponse. Si vous définissez le paramètre Quick Abort sur 0, tous les téléchargements sont interrompus.

Pour configurer la taille d’abandon rapide à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set cache contentgroup <name> -quickAbortSize <integerInKBytes>

Pour configurer la taille d’abandon rapide à l’aide de l’interface graphique

  1. Accédez à Optimisation > Mise en cache intégrée > Groupes de contenu, puis sélectionnez le groupe de contenu.
  2. Sous l’onglet Mémoire, définissez la valeur appropriée dans Quick Abort : Continuer la mise en cache si plus de zone de texte.

Exiger un nombre minimum d’accès au serveur avant la mise en cache

Vous pouvez configurer le nombre minimum de fois qu’une réponse doit être trouvée sur le serveur d’origine avant qu’elle ne puisse être mise en cache. Vous devriez envisager d’augmenter le nombre de hits minimum si la mémoire cache se remplit rapidement et a un taux de succès inférieur aux prévisions.

La valeur par défaut du nombre minimum d’accès est 0. Cette valeur met en cache la réponse après la première requête.

Pour configurer le nombre minimum d’accès requis avant la mise en cache à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set cache contentgroup <name> -minhits <positiveInteger>

Pour configurer le nombre minimum d’accès requis avant la mise en cache à l’aide de l’interface graphique

  1. Accédez à Optimisation > Mise en cache intégrée > Groupes de contenu, puis sélectionnez le groupe de contenu.
  2. Sous l’onglet Mémoire, définissez la valeur pertinente dans Ne pas mettre en cache, si les résultats sont inférieurs à la zone de texte.

Exemple d’optimisation des performances

Dans cet exemple, un client accède à un devis boursier. Les cotations boursières sont très dynamiques. Vous configurez le cache intégré pour qu’il serve le même devis de stock aux clients simultanés sans envoyer plusieurs demandes au serveur d’origine. Le devis expire après avoir été téléchargé sur tous les clients, et la prochaine demande de devis pour le même stock est récupérée à partir du serveur d’origine. Cela garantit que le devis est toujours à jour.

La présentation des tâches suivante décrit les étapes de configuration du cache pour l’application de cotation de stock.

Configurer la mise en cache pour une application de cotation d’actions

Créer un groupe de contenus pour les cotations boursières

Pour plus d’informations, reportez-vous à “A propos des groupes de contenu.”

Configurez les éléments suivants pour ce groupe de contenu :

  1. Sous l’onglet Méthode d’expiration, activez la case à cocher Expirer après réception de la réponse complète.
  2. Sous l’onglet Autres, activez la case à cocher Flash Cache, puis cliquez sur Créer.
  3. Ajoutez une stratégie de cache pour mettre en cache les cotations boursières.

Pour plus d’informations, consultez “Configuration d’une stratégie dans le cache intégré.”

Configurez les éléments suivants pour la stratégie

  1. Dans les listes Action et Stocker dans le groupe, sélectionnez CACHEet sélectionnez le groupe que vous avez défini à l’étape précédente.
  2. Cliquez sur Ajouteret, dans la boîte de dialogue Ajouterune expression, configurez une expression qui identifie les demandes de devis, par exemple : http.req.url.contains (« cgi-bin/stock-quote.pl »)
  3. Activez la stratégie.

Pour plus d’informations, consultez « Liaison globale d’une stratégie de mise en cache intégrée ». Dans cet exemple, vous liez cette stratégie au traitement de remplacement au moment de la requête et définissez la priorité sur une valeur faible.