ADC

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 liés à l’actualisation des réponses mises en cache depuis le serveur d’origine et en veillant à ce qu’une réponse soit demandée suffisamment souvent pour valoir la peine d’être mise en cache.

Réduisez les embouteillages

Les « Flash Crowds » se produisent lorsque de nombreux utilisateurs demandent simultanément les mêmes données. Les requêtes provenant d’une foule Flash peuvent devenir des erreurs de cache si vous avez configuré le cache de manière à ne traiter les accès qu’après le téléchargement de l’objet dans son intégralité.

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

  • PREFETCH : Actualise une réponse positive avant son expiration pour s’assurer qu’elle ne devienne jamais obsolète ou inactive. Pour plus d’informations, consultez la section « Actualisation d’une réponse avant son expiration ».
  • Mise enmémoire tampon du cache : commence à envoyer une réponse à plusieurs clients lorsqu’il reçoit l’en-tête de réponse du serveur d’origine, plutôt que d’attendre que la réponse complète soit téléchargée. La seule limite au nombre de clients pouvant télécharger une réponse simultanément est celle des ressources système disponibles. L’appliance NetScaler télécharge et fournit des réponses même si le client à l’origine du téléchargement s’arrête avant la fin du téléchargement. Si la réponse dépasse la taille du cache ou si la réponse est fragmentée, le cache arrête de stocker la réponse, mais le service aux clients n’est pas interrompu.
  • Flash Cache : Flash Cache met en file d’attente les requêtes vers le cache et n’autorise qu’une seule demande à atteindre le serveur à la fois.

Pour plus d’informations, consultez la section « Mettre les demandes en file d’attente dans le cache ».

Actualiser une réponse avant son expiration

Pour garantir qu’une réponse mise en cache est actualisée chaque fois que cela est nécessaire, l’option PREFETCH actualise une réponse avant son délai d’expiration calculé. L’intervalle de prélecture est calculé après réception de la première demande du client. À partir de ce moment, l’appliance NetScaler 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 qui sont fréquemment mises à jour entre les demandes. Cela ne s’applique pas aux réponses négatives (par exemple, 404 messages).

Pour configurer le préchargement pour 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 le préchargement pour 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 Foule et Pré-extraction, sélectionnez l’option Pré-extraction, puis spécifiez les valeurs dans les zones de texte Intervalle et Nombre maximal de préextraction en attente.

Mettre les demandes en file d’attente dans 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 se trouvent dans la file d’attente. Si, au cours de ce processus, la réponse ne peut plus être mise en cache, l’appliance NetScaler cesse de diffuser la réponse depuis le cache et transmet à la place la réponse du serveur d’origine aux clients 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 contenus.

L’un des inconvénients de Flash Cache est que si le serveur répond par une erreur (par exemple, une erreur 404 qui est rapidement corrigée), l’erreur est transmise aux clients en attente.

Remarque : Si Flash Cache est activé, dans certains cas, l’appliance NetScaler ne parvient pas à faire correspondre correctement l’en-tête Accept-Encoding de la demande du client à l’en-tête Content-Encoding de la réponse. L’appliance NetScaler peut supposer que ces en-têtes correspondent et générer un accès par erreur. Pour contourner ce problème, vous pouvez configurer des stratégies de mise en cache intégrée afin d’interdire la diffusion des accès aux clients qui ne disposent pas d’un 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 contenus, puis sélectionnez le groupe de contenus.

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

Mettre en cache une réponse lorsqu’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 interrompt 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 de Quick Abort, l’appliance NetScaler arrête 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’un 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’un abandon rapide à l’aide de l’interface graphique

  1. Accédez à Optimisation > Mise en cache intégrée > Groupes de contenus, puis sélectionnez le groupe de contenus.
  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 de pouvoir être mise en cache. Vous devez envisager d’augmenter le nombre minimum d’accès si la mémoire cache se remplit rapidement et présente un taux de succès inférieur aux prévisions.

La valeur par défaut pour le nombre minimum de résultats est 0. Cette valeur met en cache la réponse après la première demande.

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 contenus, puis sélectionnez le groupe de contenus.
  2. Sous l’onglet Mémoire, définissez la valeur appropriée dans Ne pas mettre en cache, si les accès sont inférieurs à la zone de texte.

Exemple d’optimisation des performances

Dans cet exemple, un client accède à une cotation boursière. Les cours boursiers sont très dynamiques. Vous configurez le cache intégré pour fournir la même cotation boursière à des clients simultanés sans envoyer plusieurs demandes au serveur d’origine. La cotation boursière expire après avoir été téléchargée vers les clients et la demande suivante est récupérée depuis le serveur d’origine. Cela garantit que le devis est toujours à jour.

L’aperçu des tâches suivant décrit les étapes de configuration du cache pour l’application de cotation boursière.

Configuration de la mise en cache pour une application de cotation boursière

Création d’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 contenus :

  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, reportez-vous à la section « 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 CACHE et sélectionnez le groupe que vous avez défini à l’étape précédente.
  2. Cliquez sur Ajouteret, dans la boîte de dialogue Ajouter une expression, configurez une expression qui identifie les demandes de cotation boursière, 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.