ПРОЕКТЫ 


  АРХИВ 


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]

proxy cache stampede


  • To: nginx-ru@xxxxxxxxx
  • Subject: proxy cache stampede
  • From: Vladimir Stavrinov <vstavrinov@xxxxxxxxx>
  • Date: Wed, 21 Sep 2011 19:13:23 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:to:subject:message-id:mime-version:content-type :content-disposition:content-transfer-encoding:user-agent; bh=GnrL1q0Bs73FaPu8ENzkLzWtv/zsTAPhodEqIu9VokI=; b=D0sUkVEBucfzCEhhI1m7UqCPXHoe6qj/QLl9RJ6nYnbnjaht0xHMFRZJFuq6RMAWJM 8Gxk0682ss3/ns4zs55tP4QiHrwCRuYkm8Dfvax7QorAkmYavViNk/imXWCnNVhVQNfC /LJ+lzJEZbN3SdNywJcWM43pmqQmWo8hFPSQo=

Добрый вечер.

Не знаю бага это или нет, но проблема не хорошая. Решения в конфигурации
я не нашёл, поэтому и пишу сюда. Сам факт хорошенько проверил
экспериментальным путём. Проблема лучше наблюдается на больших файлах,
потому что в этом случае достаточно времени для наблюдения.

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

Пробовал решить эту проблему директивой

proxy_cache_use_stale updating;

но это не помогает, что логично, ибо этот параметр регулирует обновление
уже существующих данных в кэше, а у нас проблема возникает тогда, когда
этих данных ещё нет. 

Не знаю, может я что то упустил и эту проблему можно решить средствами
конфигурации, тогда напишите пожалуйста, как это делается. Хотя на мой
взгляд, здесь нечего регулировать: такой проблемы просто не должно быть
не зависимо от конфигурации.

P.S. Проверено на версиях 1.1.0 и 1.1.2

-- 

***************************
##  Vladimir Stavrinov
##  vstavrinov@xxxxxxxxx
***************************

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


 




Copyright © Lexa Software, 1996-2009.