ADC

Mise en cache intégrée

Groupes de contenus

  • En quoi un groupe de contenus DEFAULT diffère-t-il des autres groupes de contenus ?

    Le comportement du groupe de contenus DEFAULT est le même que celui de n’importe quel autre groupe. Le seul attribut qui rend le groupe de contenus DEFAULT spécial est qu’un objet est mis en cache et qu’aucun groupe de contenus n’a été créé. L’objet est mis en cache dans le groupe DEFAULT.

  • Qu’est-ce que l’option « Contrôle du cache » au niveau du groupe de contenus ?

    Vous pouvez envoyer n’importe quel en-tête de contrôle du cache au navigateur. Il existe une option au niveau du groupe de contenus, -CacheControl, qui vous permet de spécifier l’en-tête de contrôle du cache que vous souhaitez insérer dans la réponse au navigateur.

  • Qu’ est-ce que l’option « Minhit » au niveau du groupe de contenu ?

    Minhit est une valeur entière spécifiant le nombre minimum de sélection dans une stratégie de cache avant la mise en cache de l’objet. Cette valeur est configurable au niveau du groupe de contenus. Voici la syntaxe pour configurer cette valeur à partir de l’interface de ligne de commande.

    add/set cache contentGroup \<Content_Group_Name> [-minHits \<Integer>]

  • À quoi sert l’option ExpireAtLastByte ?

    L’option ExpireAtLastByte permet au cache intégré de faire expirer l’objet lors de son téléchargement. Seules les demandes en suspens sont alors traitées à partir du cache. Toute nouvelle demande est envoyée au serveur. Ce paramètre est utile lorsque l’objet est fréquemment modifié, comme dans le cas des cotations boursières. Ce mécanisme d’expiration fonctionne conjointement avec la fonctionnalité Flash Cache. Pour configurer une option ExpireAtLastByte, exécutez la commande suivante depuis l’interface de ligne de commande :

    add cache contentGroup \<Group_Name> –expireAtLastByte YES

Politique de cache

  • Qu’est-ce qu’une politique de mise en cache ?

    Les politiques déterminent quelles transactions peuvent être mises en cache et lesquelles ne le sont pas. De plus, les politiques ajoutent ou remplacent le comportement de mise en cache HTTP standard. Les politiques déterminent une action, telle que CACHE ou NOCACHE, en fonction des caractéristiques spécifiques de la demande ou de la réponse. Si une réponse correspond aux règles de la politique, l’objet de la réponse est ajouté au groupe de contenus configuré dans la politique. Si vous n’avez pas configuré de groupe de contenus, l’objet est ajouté au groupe de contenus DEFAULT.

  • Qu’est-ce qu’un échec politique ?

    Une sélection se produit lorsqu’une demande ou une réponse correspond à une politique de cache.

  • Qu’est-ce qu’un échec ?

    Un échec se produit lorsqu’une demande ou une réponse ne correspond à aucune politique de cache. Un échec peut également se produire si la demande ou la réponse correspond à une politique de cache mais qu’une certaine dérogation au comportement RFC empêche le stockage de l’objet dans le cache.

  • J’ai configuré la fonctionnalité de mise en cache intégrée de l’appliance NetScaler. Lors de l’ajout de la politique suivante, un message d’erreur s’affiche. Y a-t-il une erreur dans la commande ?

    add cache policy image_caching -rule exp1 | ns_ext_not_jpeg –action cache

    \> ERROR: No such command

    Dans la commande précédente, l’expression doit se trouver entre guillemets. Sans guillemets, l’opérateur est considéré comme l’opérateur du tube.

Exigences en matière de mémoire

  • Quelles sont les commandes que je peux exécuter sur l’appliance NetScaler pour vérifier la mémoire allouée au cache ?

    Pour afficher la mémoire allouée au cache dans l’appliance NetScaler, exécutez l’une des commandes suivantes à partir de l’interface de ligne de commande :

    • show cache parameter

      Dans la sortie, vérifiez la valeur du paramètre Limite d’utilisation de la mémoire. Il s’agit de la mémoire maximale allouée au cache.

    • show cache \<Content_Group_Name>

      Dans la sortie, vérifiez les valeurs des paramètres Utilisation de la mémoire et Limite d’utilisation de la mémoire indiquant la mémoire utilisée et allouée pour chaque groupe de contenus.

  • Mon appliance NetScaler dispose de 2 Go de mémoire. Existe-t-il une limite de mémoire recommandée pour le cache ?

    Quel que soit le modèle d’appliance NetScaler, vous pouvez allouer la moitié de la mémoire au cache. Citrix recommande toutefois d’allouer un peu moins de la moitié de la mémoire, en raison de la dépendance à la mémoire interne. Vous pouvez exécuter la commande suivante pour allouer 1 Go de mémoire au cache :

    set cache parameter -memLimit 1024

  • Est-il possible d’allouer de la mémoire à des groupes de contenus individuels ?

    Oui. <Integer>Même si vous allouez de la mémoire au cache intégré de manière globale en exécutant le paramètre set cache —memlimit<Integer>, vous pouvez allouer de la mémoire à des groupes de contenus individuels en exécutant la commande set cache <Content_Group_Name>—memLimit. La mémoire maximale que vous pouvez allouer aux groupes de contenus (combinés) ne peut pas dépasser la mémoire que vous avez allouée au cache intégré.

  • Quelle est la dépendance de la mémoire entre le cache intégré et la mémoire tampon TCP ?

    Si l’appliance NetScaler dispose de 2 Go de mémoire, elle réserve environ 800 Mo à 900 Mo de mémoire et le reste est alloué au système d’exploitation FreeBSD. Par conséquent, vous pouvez allouer jusqu’à 512 Mo de mémoire au cache intégré et le reste est alloué à la mémoire tampon TCP.

  • Cela affecte-t-il le processus de mise en cache si je n’alloue pas de mémoire globale au cache intégré ?

    Si vous n’allouez pas de mémoire au cache intégré, toutes les demandes sont envoyées au serveur. Pour vous assurer que vous avez alloué de la mémoire au cache intégré, exécutez la commande show cache parameter. En fait, aucun objet n’est mis en cache si la mémoire globale est égale à 0, elle doit donc être définie en premier.

Commandes de vérification

  • Quelles sont les options pour afficher les statistiques du cache ?

    Vous pouvez utiliser l’une des options suivantes pour afficher les statistiques relatives au cache :

    • stat cache

      Pour afficher le résumé des statistiques du cache.

    • stat cache –detail

      Pour afficher les détails complets des statistiques du cache.

  • Quelles sont les options pour afficher le contenu mis en cache ?

    Pour afficher le contenu mis en cache, vous pouvez exécuter la show cache object commande.

  • Quelle est la commande que je peux exécuter pour afficher les caractéristiques d’un objet stocké en cache ?

    Si l’objet stocké dans le cache est, par exemple, GET //10.102.12.16:80/index.html, vous pouvez afficher les détails de l’objet en exécutant la commande suivante depuis l’interface de ligne de commande de l’appliance :

    show cache object -url '/index.html' -host 10.102.3.96 -port 80

  • Est-il obligatoire de spécifier le nom du groupe en tant que paramètre pour afficher les objets paramétrés dans le cache ?

    Oui. Il est obligatoire de spécifier le nom du groupe en tant que paramètre pour afficher les objets paramétrés dans le cache. Par exemple, considérez que vous avez ajouté les politiques suivantes avec la même règle :

     add cache policy p2 -rule ns_url_path_cgibin -action CACHE –storeInGroup g1
     add cache policy p1 -rule ns_url_path_cgibin -action CACHE -storeInGroup g2
     <!--NeedCopy-->
    

    Dans ce cas, pour les multiples demandes, si la politique p1 est évaluée, son compteur de sélection est incrémenté et la politique stocke l’objet dans le groupe g1, qui possède des paramètres de sélection. Vous devez donc exécuter la commande suivante pour afficher les objets du cache :

    show cache object -url "/cgi-bin/setCookie.pl" -host 10.102.18.152 groupName g1

    De même, pour un autre ensemble de requêtes multiples, si la politique p2 est évaluée, son compteur de sélection est incrémenté et la politique stocke l’objet dans le groupe g2, qui ne possède pas de paramètres de sélection. Vous devez donc exécuter la commande suivante pour afficher les objets du cache :

    show cache object -url "/cgi-bin/setCookie2.pl" -host 10.102.18.152

  • Je remarque qu’il y a des entrées vides dans la sortie de la commande nscachemgr. Quelles sont ces entrées ?

    Tenez compte de l’exemple de sortie suivant de la nscachemgr commande. Les entrées vides de cette sortie sont surlignées en gras pour votre référence :

     root@ns# /netscaler/nscachemgr -a
     //10.102.3.89:80/image8.gif
     //10.102.3.97:80/staticdynamic.html
     //10.102.3.97:80/
     //10.102.3.89:80/image1.gif
     //10.102.3.89:80/file5.html
     //10.102.3.96:80/
     //10.102.3.97:80/bg_logo_segue.gif
     //10.102.3.89:80/file500.html
     //10.102.3.92:80/
     //10.102.3.96:80/cgi-bin/rfc/ccProxyReval.pl
     Total URLs in IC = 10
     <!--NeedCopy-->
    

    Les entrées vides dans la sortie sont dues aux propriétés de mise en cache par défaut de GET/HTTP/1.1.

Rincer des objets

  • Comment puis-je vider un objet sélectif du cache ?

    Vous pouvez identifier un objet de manière unique grâce à son URL complète. Pour vider un tel objet, vous pouvez effectuer l’une des tâches suivantes :

    • Vider le cache
    • Groupe de contenus Flush
    • Rincer l’objet spécifique

    Pour vider l’objet spécifique, vous devez spécifier les paramètres de la requête. Vous spécifiez le paramètre InvalParam pour vider l’objet. Ce paramètre s’applique uniquement à une requête.

  • Toute modification de la configuration du cache provoque-t-elle le vidage du cache ?

    Oui. Lorsque vous modifiez la configuration du cache, toutes les commandes de cache SET vident intrinsèquement les groupes de contenus appropriés.

  • J’ai mis à jour les objets sur le serveur. Dois-je vider les objets mis en cache ?

    Oui. Lorsque vous mettez à jour des objets sur le serveur, vous devez vider les objets mis en cache, ou au moins les objets et groupes de contenus concernés. Le cache intégré n’est pas affecté par une mise à jour du serveur. Il continue à servir les objets mis en cache jusqu’à leur expiration.

Cache Flash

  • Qu’est-ce que la fonctionnalité Flash Cache de l’appliance NetScaler ?

    Le phénomène des foules Flash se produit lorsque de nombreux clients accèdent au même contenu. Il en résulte une augmentation soudaine du trafic vers le serveur. La fonctionnalité Flash Cache permet à l’appliance NetScaler d’améliorer les performances dans une telle situation en n’envoyant qu’une seule demande au serveur. Toutes les autres demandes sont mises en file d’attente sur l’appliance et la réponse unique est fournie aux demandes. Vous pouvez utiliser l’une des commandes suivantes pour activer la fonctionnalité Fast Cache :

    • add cache contentGroup \<Group_Name> -flashCache YES
    • set cache contentGroup \<Group_Name> -flashCache YES
  • Quelle est la limite pour les clients Flash Cache ?

    Le nombre de clients Flash Cache dépend de la disponibilité des ressources sur l’appliance NetScaler.

Comportement par défaut

  • L’appliance NetScaler reçoit-elle des objets de manière proactive à leur expiration ?

    L’appliance NetScaler ne reçoit jamais d’objets de manière proactive à l’expiration. Cela est vrai même pour les objets négatifs. Le premier accès après expiration déclenche une demande auprès du serveur.

  • Le cache intégré ajoute-t-il des clients à la file d’attente avant même qu’il ne commence à recevoir la réponse ?

    Oui. Le cache intégré ajoute des clients à la file d’attente avant même qu’il ne commence à recevoir la réponse.

  • Quelle est la valeur par défaut du paramètre Verify cached object using de la configuration du cache ?

    HOSTNAME_AND_IP est la valeur par défaut.

  • L’appliance NetScaler crée-t-elle des entrées de journal dans les fichiers journaux ?

    Oui. L’appliance NetScaler crée des entrées de journal dans les fichiers journaux.

  • Les objets compressés sont-ils stockés dans le cache ?

    Oui. Les objets compressés sont stockés dans le cache.

Interopérabilité avec d’autres fonctionnalités

  • Qu’advient-il des objets actuellement stockés dans le cache et auxquels on accède via le VPN SSL ?

    Les objets stockés dans le cache et accessibles régulièrement sont servis en cache, sélectionnés lorsqu’ils sont accessibles via le VPN SSL.

  • Qu’ advient-il des objets stockés dans le cache lorsqu’ils sont accessibles via SSL VPN et plus tard accessibles via une connexion régulière ?

    Les objets stockés via l’accès VPN SSL sont servis de sélection lorsqu’ils sont accessibles via la connexion normale.

  • Lors de l’utilisation de la journalisation Web, comment différencier les entrées qui indiquent la réponse servie du cache de celles desservies par le serveur ?

    Pour les réponses envoyées à partir du cache intégré, le champ du journal du serveur contient la valeur IC. Pour les réponses envoyées depuis un serveur, le champ du journal du serveur contient la valeur envoyée par le serveur. Voici un exemple d’entrée de journal pour une transaction de mise en cache intégrée :

    "10.102.1.52 - "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0; .NET CLR 1.0.3705)" "GET /" 200 0 "IC" 10.102.1.45"

    En plus d’une demande du client, la réponse enregistrée est celle envoyée au client et pas nécessairement celle envoyée par le serveur.

Remarque

Lorsque vous utilisez la journalisation Web, les réponses du cache intégré contiennent la valeur IC dans le champ du journal du serveur. Le champ journal du serveur est présent dans le client NSWL avec le spécificateur de format « %o1 ».

Divers

  • Que voulez-vous dire par la configuration de relexpiry et absexpiry ?

    En configurant relexpiry et absexpiry, cela signifie que vous remplacez l’en-tête indépendamment de ce qui apparaît dans l’en-tête. Vous pouvez configurer un paramètre d’expiration différent et le niveau du groupe de contenu. Avec relexpiry, l’expiration de l’en-tête est basée sur l’heure à laquelle l’objet est reçu par NetScaler. Avec absexpiry, l’expiration est basée sur l’heure configurée sur NetScaler. Relexpiry est configuré en termes de secondes. Absexpiry est un moment de la journée.

  • Que voulez-vous dire par la configuration de weakpos et heuristic ?

    Les weakpos et heuristiques sont comme des valeurs de secours. S’il y a un en-tête d’expiration, il n’est considéré que si le dernier en-tête modifié est présent. L’appliance NetScaler définit l’expiration en fonction de la dernière modification de l’en-tête et du paramètre heuristique. Le calcul heuristique de l’expiration détermine le délai d’expiration en vérifiant le dernier en-tête modifié. Un certain pourcentage de la durée écoulée depuis la dernière modification de l’objet est utilisé comme délai d’expiration. L’heuristique d’un objet qui reste inchangé pendant de longues périodes et qui est susceptible d’avoir des délais d’expiration plus longs. –heurExpiryParam spécifie la valeur de pourcentage à utiliser dans ce calcul. Sinon, l’appliance utilise la valeur weakpos.

  • Que dois-je considérer avant de configurer la mise en cache dynamique ?

    Si certains paramètres se présentent sous forme de nom-valeur et ne contiennent pas la requête URL complète, ou si l’appliance reçoit le paramètre dans un en-tête de cookie ou un corps POST, envisagez de configurer la mise en cache dynamique. Pour configurer la mise en cache dynamique, vous devez configurer le paramètre HitParams.

  • Comment le codage hexadécimal est-il pris en charge dans les noms de paramètres ?

    Sur l’appliance NetScaler, le codage %HEXHEX est pris en charge dans les noms des paramètres. Dans les noms que vous spécifiez pour HitParams ou InvalParams, vous pouvez spécifier un nom contenant le codage %HEXHEX dans les noms. Par exemple, name, name%65 et n %61m%65 sont équivalents.

  • Quel est le processus de sélection d’un paramètre HitParam ?

    Examinez l’extrait suivant d’un en-tête HTTP pour une requête POST :

     POST /data2html.asp?param1=value1&param2=&param3&param4=value4
     HTTP/1.1
     Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
     application/vnd.ms-powerpoint, application/vnd.ms-excel,
     application/msword, application/x-shockwave-flash, \*/\*
     Referer: http://10.102.3.97/forms.html
     Accept-Language: en-us
     Content-Type: application/x-www-form-urlencoded
     Accept-Encoding: gzip, deflate
     User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
     Host: 10.102.3.97
     Content-Length: 153
     Connection: Keep-Alive
     Cache-Control: no-cache
     Cookie: ASPSESSIONIDQGQGGRNY=NNLLKDADEENOAFLCCDGFGDMO
     S1=This+text+is+only+text%2C+not+more+and+not+less%2C+%0D%0Ajust+text+to+be+itself%2C+namely+%22Text%22+to+be+posted+as+text+%28what+else...%29&B1=Submit
     <!--NeedCopy-->
    

    Dans la demande précédente, vous pouvez utiliser S1 et B1, surlignés en gras à titre de référence, comme hitParams en fonction de vos besoins. De même, si vous utilisez -MatchCookies YES dans le groupe de contenus ASPSESSIONIDQGQGGRNY, vous pouvez également utiliser ces paramètres en tant que hitParams.

  • Qu’arrive-t-il aux clients en file d’attente si la réponse ne peut pas être mise en cache ?

    Si la réponse ne peut pas être mise en cache, tous les clients de la file d’attente reçoivent la même réponse que le premier client.

  • Puis-je activer les fonctionnalités Poll every time (PET) et Flash Cache sur le même groupe de contenus ?

    Non. Vous ne pouvez pas activer PET et Flash Cache sur le même groupe de contenus. Le cache intégré n’exécute pas la fonction AutoPet sur les groupes de contenus Flash Cache. La fonction PET garantit que le cache intégré ne dessert pas un objet stocké sans consulter le serveur. Vous pouvez configurer le PET de manière explicite pour un groupe de contenus.

  • Quand les entrées de journal sont-elles créées pour les clients en file d’attente ?

    Les entrées du journal sont créées pour les clients en file d’attente peu après que l’appliance a reçu l’en-tête de réponse. Les entrées du journal sont créées uniquement si l’en-tête de réponse ne rend pas l’objet impossible à mettre en cache.

  • Que signifient les valeurs DNS, HOSTNAME et HOSTNAME_AND_IP du paramètre Verify cached object using de la configuration du cache ?

    Les significations sont les suivantes :

    • set cache parameter -verifyUsing HOSTNAME

      La commande ignore l’adresse IP de destination.

    • set cache parameter -verifyUsing HOSTNAME_AND_IP

      La commande correspond à l’adresse IP de destination.

    • set cache parameter -verifyUsing DNS

      La commande utilise le serveur DNS.

  • J’ai réglé WeakneGrelExpiry sur 600, soit 10 minutes. J’ai remarqué que les réponses 404 ne sont pas mises en cache. Quelle en est la raison ?

    Cela dépend entièrement de votre configuration. Par défaut, les réponses 404 sont mises en cache pendant 10 minutes. Si vous souhaitez que toutes les réponses 404 soient récupérées depuis le serveur, spécifiez—WeakneGrelExpiry 0. Vous pouvez ajuster la valeur —WeakneGrelExpiration à la valeur souhaitée, par exemple supérieure ou inférieure pour que les 404 réponses soient mises en cache de manière appropriée. Si vous avez configuré —AbsExpiry pour les réponses positives, il se peut que cela ne donne pas les résultats souhaités.

  • Lorsque l’utilisateur accède au site à l’aide du navigateur Mozilla Firefox, le contenu mis à jour est diffusé. Toutefois, lorsque l’utilisateur accède au site à l’aide du navigateur Microsoft Internet Explorer, du contenu obsolète est diffusé. Quelle pourrait en être la raison ?

    Le navigateur Microsoft Internet Explorer extrait peut-être le contenu de son cache local au lieu du cache intégré de NetScaler. Cela peut être dû au fait que le navigateur Microsoft Internet Explorer ne respecte pas l’en-tête relatif à l’expiration dans la réponse.

    Pour résoudre ce problème, vous pouvez désactiver le cache local d’Internet Explorer et effacer le contenu hors connexion. Après avoir effacé le contenu hors connexion, le navigateur doit afficher le contenu mis à jour.

  • Et si les Hits sont nuls ?

    Vérifiez si l’heure du serveur et l’heure NS sont synchronisées. Et la limite WeakPosRelExpiry définie doit correspondre à la différence de temps entre NS et le serveur comme suit :

     root@ns180# date
     Tue May 15 18:53:52 IST 2012
     <!--NeedCopy-->
    
  • Pourquoi les politiques sont-elles touchées alors que rien n’est mis en cache ?

    Vérifiez que la mémoire est allouée au cache intégré et que l’allocation est supérieure à zéro.

  • Est-il possible de remettre à zéro les compteurs de cache ?

    Il n’existe pas de ligne de commande ni d’option d’interface graphique permettant de mettre les compteurs de cache à zéro, et le fait de vider le cache ne permet pas non plus de le vider. Le redémarrage de la boîte définit automatiquement ces compteurs à zéro.

Mise en cache intégrée