Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: долгий скрипт( вопрос по	 настройке)
 
 
Hello!
On Tue, Feb 09, 2010 at 10:38:27AM -0500, szcheh wrote:
> есть связка
> nginx - apache - long_time_script.pl
> 
> в енджинксе стоит проксирование на апач с кешированием 
> результатов выдачи скрипта long_time_script.pl
> допустим proxy_cache_valid  200 1m;
> первый запрос на получение результатов long_time_script.pl
> инджинксом "лезет" в апач за ним.. результат кладет в свой кеш..
> на все последующие запросы которые приходят к нему в течении 1 
> минуты он отвечает данными из своего кеша.
> 
> грубо представим ситуацию, что long_time_script.pl очень тяжелый 
> и работает не меннее 2х секунд и есть кучу народу,которые со 
> скоростью 10 запросов в сек хотят результаты этого скрипта...
> в момент когда в кеше нет результатов выполнения скрипта  
> инджинкс все запросы отправляет в апач в течении тех самых 2х 
> секунд.. в нашем случае апач получает 20 запросов, которые 
> естественно тормозят друг друга..аналогичная ситуация возникает 
> на границе времени жизни результатов в кеше, т.е через 1 минуту.
> 
> возможно ли как-нибудь объяснить енджинксу, что он уже отправил 
> один запрос и надо обработку остальных 19 ребят с аналогичными 
> запросами притормозить(не отправлять их запросы в апач ) до 
> прихода каких-либо результатов первого запроса, а потом выдать 
> им готовые данные уже из кеша?
> ничего похожего в настройках не нашел.
Ближайшее что есть - это
    proxy_cache_use_stale updating ...;
В этом случае по истечению срока валидности ответа в кеше nginx 
отметит что он пошёл его обновлять - и пойдёт обновлять одним 
запросом.  Все остальные запросы будут отдавать пользователям 
устаревший ответ (пока не прилетит новый).
В общем случае это busy lock'и, и их пока нет.
Maxim Dounin
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
 
 |