2010-04-09 29 views
4

Nous utilisons un cache Squid pour décharger le trafic de nos serveurs Web, ie. il est configuré en tant que proxy inverse répondant aux demandes entrantes avant qu'elles n'atteignent nos serveurs Web. Lorsque nous sommes confrontés à des requêtes simultanées pour la même requête qui ne se trouve pas dans le cache, Squid transfère toutes les requêtes à nos serveurs Web ("origine"). Pour nous, ce comportement n'est pas idéal: nos serveurs d'origine s'enlisent en essayant de satisfaire simultanément N demandes identiques. Au lieu de cela, nous aimerions que la première demande de proxy au serveur d'origine, le reste des demandes à mettre en file d'attente à la couche Squid, puis tous être rempli par Squid lorsque le serveur d'origine a répondu à cette première demande .Gestion de Squid des échecs de cache simultanés

Est-ce que quelqu'un sait comment configurer Squid pour cela?

Nous avons lu la documentation plusieurs fois et avons effectué une recherche approfondie sur le sujet, mais nous ne savons pas comment procéder.

Nous utilisons aussi Akamai et, fait intéressant, c'est son comportement par défaut. (Cependant, Akamai a tellement de noeuds que nous voyons encore beaucoup de demandes simultanées dans certains scénarios de pics de trafic, même avec la fonctionnalité super-noeud d'Akamai activée.)

Ce comportement est clairement configurable pour d'autres caches, par ex. la documentation Ehcache offre l'option "Missing Concurrent Cache: Un cache missing provoque le traitement de la chaîne de filtrage, en amont du filtre de cache.Pour éviter que les threads demandant la même clé effectuent un travail inutile, ces threads bloquent derrière le premier thread. " Certaines personnes appellent ce comportement un "cache bloquant", car les demandes concurrentes suivantes bloquent derrière la première requête jusqu'à ce qu'elle soit remplie ou expirée.

Merci d'avoir regardé ma question!

Oliver

Répondre

9

Vous êtes à la recherche pour le transfert affaissée: http://www.squid-cache.org/Versions/v2/2.7/cfgman/collapsed_forwarding.html

Disponible en 2.6 et 2.7, mais pas encore en 3.x.

Quand il y a quelque chose dans le cache, mais obsolète, vous pourriez être également intéressé par stale-while-reavlidate: http://www.mnot.net/blog/2007/12/12/stale

+0

Merci, Mark! C'est exactement ça. En outre, votre intuition est juste que stale-while-revalidate est aussi un comportement que nous préférerions, alors nous allons faire des recherches un peu et ensuite j'espère faire un essai! –

+0

N'obtenez toujours pas pourquoi les gens sont heureux de dire merci dans un commentaire lorsque le simple marquage correct profite à tout le monde plus. – Rudiger

+0

Si vous vous demandez comment configurer [ATS] (https://trafficserver.apache.org/) pour un comportement similaire, consultez ces liens: [Reducing Origin Server Requests] (https://trafficserver.readthedocs.org/ fr/dernier/admin/http-proxy-cache.en.html # reduction-origine-serveur-demandes-eviter-le-tonnerre-troupeau) & [Le transfert ne fonctionne pas fonctionne] (http: //users.trafficserver.apache. narkive.com/WEieKdIW/collapsed-forwarding-not-work) – brutuscat