Re: проблема с fastcgi_cache_lock

Konstantin Svist fry.kun на gmail.com
Сб Июн 16 08:22:38 UTC 2012


On 06/16/2012 12:47 AM, Maxim Dounin wrote:
> Hello!
>
> On Fri, Jun 15, 2012 at 07:33:34PM -0700, Konstantin Svist wrote:
>
>> Nginx 1.2.0
>>
>> Конфиг:
>>
>> server {
>>    listen 8081;
>>    location / {
>>     proxy_read_timeout  500ms;
>>     proxy_pass  http://localhost:8082;
>>     error_page  404  500  502  503  504  =200  @fallback;
>>    }
>>    location @fallback { echo "oops"; }
>> }
>> server {
>>    listen 8082;
>>    fastcgi_temp_path        /dev/shm/nginx_fcgi_temp  1  2;
>>    fastcgi_cache_path       /dev/shm/nginx_fcgi_cache  levels=1:2
>> keys_zone=mycache:500m  max_size=5120m;
>>    fastcgi_cache_use_stale  error  timeout  updating;
>>    fastcgi_cache_lock       on;
>>    fastcgi_cache_key        $request_uri;
>>    fastcgi_cache_valid      200  2h;
>>    fastcgi_cache_bypass     $http_pragma  $http_authorization;
>>    fastcgi_no_cache         $http_pragma  $http_authorization;
>>    fastcgi_cache            mycache;
>>    location / {
>>      fastcgi_pass backend;
>>    }
>> }
>>
>>
>> Запускаю тест:
>>   ab -n5 -c5 'http://localhost:8081/?q=foobar'
>>
>>
>> Результат:
>>   1й запрос идёт на бэкенд, на обработку 45мс; остальные 4 получают
>> "oops" после 500мс
>> Вторая попытка:
>>   1й запрос идёт на бэкенд, на обработку 37мс; 3 получают "oops"
>> после 500мс; последний получает результат из кэша, но только после
>> 500мс
>>
>>
>>
>> Что происходит?
>> Я думал что последние 4 должны получить не-"oops" результат после 45мс...
> В идеале - да, в текущей реализации - после 500 ms или
> fastcgi_cache_lock_timeout, что наступит раньше.
>

А долго ждать до верной реализации?




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