proxy cache stampede

Dmitriy MiksIr miksir на maker.ru
Чт Сен 22 13:00:32 UTC 2011



09/22/2011 04:33 PM, Vladimir Stavrinov пишет:
> 2011/9/22 Oleksandr V. Typlyns'kyi<wangsamp на gmail.com>:
>>   Владимир, перед тем как продолжать сотрясать воздух про пороки и фичи, а
>
> Здесь меня только что упрекнули в неуважении или в чём то таком, когда
> приходится реагировать на такое.
>
>>   назовите-ка хотя бы 3 распространённых веб-сервера или программных
>>   акселераторов с busy lock из коробки?
>>   И сразу станет понятно насколько это "must have", "optional" или "must be fixed".
>
> В первых, свои грехи не оправдываются чужими (это насчёт 3
> распространённых веб серверах) .
> Во вторых, я не понимаю почему мне здесь всё время шьют дело о бизи
> локах, о которых я, как ни странно, до сих пор почти ничего не сказал.
> Обычное дело - без меня меня женили.
> И в третьих, "что бы сразу стало понятно", не худо бы знать что
> большинство крупнейших CDN используют кэширующие прокси и если они
> работают не совсем как от них ожидают, мягко говоря, то это в
> частности и по причине обсуждаемой здесь проблемы. А как они кэшируют
> я знаю не по наслышке - плохо кешируют. Так что если здесь идёт речь
> об актуальности - то задача эта , что бы сказать не сильно сотрясая
> воздух, весьма актуальна.

Задача CDN все же не экономия трафика владельца CDN, а быстрая доставка 
контента клиенту. Описанная вами проблема этому не мешает. А nginx 
никогда не позиционировался как средство построения CDN. Так что 
непонятно ваше удивление.

Еще непонятно следующее - может, растолкуете. Допустим у нас есть полное 
зеркало. Половина - горячее. Вы делаете кеширующий сервер объема чуть 
больше половины. Ну горячий контент у вас быстро заполнится и проблема 
уйдет. А вот холодный контент у вас будет постоянно генерить 
дополнительный трафик, ибо там будет большая конкуренция за остатки 
кеша. Т.е. запрошенный холодный будет вышибать другой холодный из кеша и 
т.д. - по сути получится, что почти весь холодный контент, как ни крути, 
будет дергаться из полного зеркала, пораждая тот самый ненавистный вами 
трафик.

Если бы я делал что-то подобное для горячего контента, то, наверно, 
делал бы это руками. Т.е. nginx-ом бы проверял наличие файла в кеше и в 
случае отсуствия - делал бы http редирект на ближайшее зеркало. И 
отдельно смотрел бы лог запросов для определения горячего контента и 
выкачивал бы его с зеркала. Тут и более настраиваемое поведеление кешера 
под задачи, и плавный старт и клиенты ничего не ждут.




Подробная информация о списке рассылки nginx-ru