Squid обрабатывает одновременное отсутствие кеша - PullRequest
4 голосов
/ 09 апреля 2010

Мы используем кеш Squid для разгрузки трафика с наших веб-серверов, т.е. он настроен как обратный прокси-сервер, отвечающий на входящие запросы до того, как они попадут на наши веб-серверы.

Когда мы сталкиваемся с параллельными запросами на тот же запрос, которого нет в кэше, Squid перенаправляет все запросы на наши веб-серверы ("origin"). Для нас это поведение не идеальное: наши серверы-источники зависают, пытаясь одновременно выполнить N одинаковых запросов.

Вместо этого мы бы хотели, чтобы первый запрос передавался через прокси на исходный сервер, остальные запросы помещались в очередь на уровне Squid, а затем все выполнялись Squid, когда исходный сервер ответил на этот первый запрос.

Кто-нибудь знает, как настроить Squid для этого?

Мы несколько раз прочитали документацию и тщательно просмотрели эту тему в Интернете, но не можем понять, как это сделать.

Мы также используем Akamai, и, что интересно, это стандартное поведение. (Однако Akamai имеет так много узлов, что мы все равно видим много параллельных запросов в определенных сценариях скачка трафика, даже с включенной функцией супер-узлов Akamai.)

Это поведение явно настраивается для некоторых других кешей, например. документация по Ehcache предлагает опцию «Одновременные пропуски в кеше: промах в кеше приведет к обработке цепочки фильтров перед кеширующим фильтром. Чтобы избежать потоков, запрашивающих один и тот же ключ для выполнения бесполезной дублирующей работы, эти потоки блокируются за первым потоком. «

Некоторые люди называют это поведение «блокирующим кэшем», поскольку последующие параллельные запросы блокируют первый запрос до тех пор, пока он не будет выполнен или истек тайм-аут.

Спасибо за просмотр моего вопроса о нубе!

Оливер

1 Ответ

9 голосов
/ 14 апреля 2010

Вы ищете свернутую пересылку: http://www.squid -cache.org / Версии / v2 / 2,7 / cfgman / collapsed_forwarding.html

Доступно в 2.6 и 2.7, но еще не в 3.x.

Когда в кеше что-то есть, но устарело, вас также может заинтересовать устаревание: http://www.mnot.net/blog/2007/12/12/stale

...