ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: proxy cache stampede



Hello!

On Wed, Sep 21, 2011 at 07:13:23PM +0400, Vladimir Stavrinov wrote:

> Добрый вечер.
> 
> Не знаю бага это или нет, но проблема не хорошая. Решения в конфигурации
> я не нашёл, поэтому и пишу сюда. Сам факт хорошенько проверил
> экспериментальным путём. Проблема лучше наблюдается на больших файлах,
> потому что в этом случае достаточно времени для наблюдения.
> 
> Суть проблемы. Если несколько независимых клиентов одновременно (или с
> некоторым интервалом) запрашивают один и тот же контент, которого нет
> кэше (важна не одновременность, а отсутствие данных в кэше в момент
> запроса), то для каждого такого запроса создаётся отдельный файл во
> временной директории и устанавливается отдельное соединение с backend
> сервером.  Даже если все эти клиенты досрочно оборвут соединение, то всё
> равно каждый такой файл будет закачан с backend сервера на наш
> кэширующий прокси полностью, причём каждый по своему отдельному
> соединению, то есть параллельно. В итоге и объём файлов на диске и, что
> ещё более важно - результирующий трафик умножаются на количество
> клиентов (запросов). Другими словами мы многократно закачиваем одни и те
> же данные. Не трудно себе представить, что будет если количество таких
> запросов будет расти. А если к этому добавить очевидную возможность
> одновременного существования нескольких таких групп (для разных
> запросов), то становится совсем плохо.
> 
> Пробовал решить эту проблему директивой
> 
> proxy_cache_use_stale updating;
> 
> но это не помогает, что логично, ибо этот параметр регулирует обновление
> уже существующих данных в кэше, а у нас проблема возникает тогда, когда
> этих данных ещё нет. 
> 
> Не знаю, может я что то упустил и эту проблему можно решить средствами
> конфигурации, тогда напишите пожалуйста, как это делается. Хотя на мой
> взгляд, здесь нечего регулировать: такой проблемы просто не должно быть
> не зависимо от конфигурации.
> 
> P.S. Проверено на версиях 1.1.0 и 1.1.2

Решение этой проблемы называется "busy locks" [1], и в настоящий 
момент в nginx'е отсутствует.  Сделать надо, но пока не.

[1] http://sysoev.ru/mod_accel/readme.html#busylocks

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.