Re: lte lt gte gt conditions

2015-09-14 Пенетрантность Alex Vorona

14.09.15 17:58, Андрей Василишин пишет:

Надо в зависимости от $connections_writing устанавливать $limit_rate,
при чем ступенчато. Скажем от 0 до 5к - без ограничений, от 5к до 10к -
ограничение  200к, от 10к до 15к  - 150к, от 15к и выше - 100к
И если бы еще это ограничение срабатывало на все коннекты на текущий 
момент, а не только на новые :)


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

Re: lte lt gte gt conditions

2015-09-14 Пенетрантность Alex Vorona

> 14.09.15 13:44, denis пишет:

14.09.2015 9:05, Alex Vorona пишет:

Постройте самописным генератором map для $connections_active от 0 до
10 и все.

по отзывам, мап на 100к записей ест много памяти и подтормаживает.
map на 100к отрабатывает в микробенчмарке одинаково быстро с return 200 
- те же 3мс time_total у curl.

Понятно, что регуляркой красивее, но раз хочется странного ...


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

Re: lte lt gte gt conditions

2015-09-14 Пенетрантность Maxim Dounin
Hello!

On Mon, Sep 14, 2015 at 05:58:08PM +0300, Андрей Василишин wrote:

> 14.09.2015 17:37, Maxim Dounin пишет:
> >Hello!
> >
> >On Mon, Sep 14, 2015 at 09:05:07AM +0300, Alex Vorona wrote:
> >
> >>14.09.15 08:55, Андрей Василишин пишет:
> >>>14.09.2015 8:36, Alex Vorona пишет:
> 13.09.15 23:08, Андрей Василишин пишет:
> >Добрый день всем!
> >Хочу странного. Хочу делать limit_rate  в зависимости от
> >$connections_active и желательно без обращения на бэкенд за данной
> >логикой. Как такое сделать?
> map_module пробовали?
> 
> >>>
> >>>не вижу там возможность построить выражение >, <, =<, >=
> >>Постройте самописным генератором map для $connections_active от 0 до 10
> >>и все.
> >
> >IMHO, проще/правильнее регулярных выражений написать для нужных
> >скоростей.
> >
> 
> Не совсем понял, как это сделать?
> Надо в зависимости от $connections_writing устанавливать $limit_rate, при
> чем ступенчато. Скажем от 0 до 5к - без ограничений, от 5к до 10к -
> ограничение  200к, от 10к до 15к  - 150к, от 15к и выше - 100к

Как-то так:

map $connections_writing $limit {
"~^.{1-3}$"  0;
"~^[1234].{3}$"  0;
"~^.{4}$"200k;
"~^[1-4].{4}$"   150k;
default  100k;
}

И далее в нужном месте:

set $limit_rate $limit;

Не то чтобы очень прямо, но должно работает.

> ЗЫ $connections_writing и другие переменные ngx_http_stub_status_module не
> описаны тут http://nginx.org/ru/docs/varindex.html

Да вроде описаны.

-- 
Maxim Dounin
http://nginx.org/

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

Re: lte lt gte gt conditions

2015-09-14 Пенетрантность Андрей Василишин

14.09.2015 17:37, Maxim Dounin пишет:

Hello!

On Mon, Sep 14, 2015 at 09:05:07AM +0300, Alex Vorona wrote:


14.09.15 08:55, Андрей Василишин пишет:

14.09.2015 8:36, Alex Vorona пишет:

13.09.15 23:08, Андрей Василишин пишет:

Добрый день всем!
Хочу странного. Хочу делать limit_rate  в зависимости от
$connections_active и желательно без обращения на бэкенд за данной
логикой. Как такое сделать?

map_module пробовали?



не вижу там возможность построить выражение >, <, =<, >=

Постройте самописным генератором map для $connections_active от 0 до 10
и все.


IMHO, проще/правильнее регулярных выражений написать для нужных
скоростей.



Не совсем понял, как это сделать?
Надо в зависимости от $connections_writing устанавливать $limit_rate, 
при чем ступенчато. Скажем от 0 до 5к - без ограничений, от 5к до 10к - 
ограничение  200к, от 10к до 15к  - 150к, от 15к и выше - 100к
ЗЫ $connections_writing и другие переменные ngx_http_stub_status_module 
не описаны тут http://nginx.org/ru/docs/varindex.html


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

Re: lte lt gte gt conditions

2015-09-14 Пенетрантность Maxim Dounin
Hello!

On Mon, Sep 14, 2015 at 09:05:07AM +0300, Alex Vorona wrote:

> 14.09.15 08:55, Андрей Василишин пишет:
> >14.09.2015 8:36, Alex Vorona пишет:
> >>13.09.15 23:08, Андрей Василишин пишет:
> >>>Добрый день всем!
> >>>Хочу странного. Хочу делать limit_rate  в зависимости от
> >>>$connections_active и желательно без обращения на бэкенд за данной
> >>>логикой. Как такое сделать?
> >>map_module пробовали?
> >>
> >
> >не вижу там возможность построить выражение >, <, =<, >=
> Постройте самописным генератором map для $connections_active от 0 до 10
> и все.

IMHO, проще/правильнее регулярных выражений написать для нужных 
скоростей.  

-- 
Maxim Dounin
http://nginx.org/

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

Re: lte lt gte gt conditions

2015-09-14 Пенетрантность Андрей Василишин



perl_set может быть красивее, насчет быстрее - не уверен.



Тогда уже легче заголовком или аргументом передать на пхп-бэкенд, а 
оттуда вернуть  X-Accel-Limit-Rate


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

Re: lte lt gte gt conditions

2015-09-14 Пенетрантность Alex Vorona

14.09.15 13:44, denis пишет:

14.09.2015 9:05, Alex Vorona пишет:

14.09.15 08:55, Андрей Василишин пишет:

14.09.2015 8:36, Alex Vorona пишет:

13.09.15 23:08, Андрей Василишин пишет:

Добрый день всем!
Хочу странного. Хочу делать limit_rate  в зависимости от
$connections_active и желательно без обращения на бэкенд за данной
логикой. Как такое сделать?

map_module пробовали?



не вижу там возможность построить выражение >, <, =<, >=

Постройте самописным генератором map для $connections_active от 0 до
10 и все.

по отзывам, мап на 100к записей ест много памяти и подтормаживает. Да и
выглядит как ужасный костыль.

Больше на 20-30мбайт на 64bit в моем тесте. Это много?

perl_set может быть красивее, насчет быстрее - не уверен.

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

Re: lte lt gte gt conditions

2015-09-14 Пенетрантность denis

14.09.2015 9:05, Alex Vorona пишет:

14.09.15 08:55, Андрей Василишин пишет:

14.09.2015 8:36, Alex Vorona пишет:

13.09.15 23:08, Андрей Василишин пишет:

Добрый день всем!
Хочу странного. Хочу делать limit_rate  в зависимости от
$connections_active и желательно без обращения на бэкенд за данной
логикой. Как такое сделать?

map_module пробовали?



не вижу там возможность построить выражение >, <, =<, >=
Постройте самописным генератором map для $connections_active от 0 до 
10 и все.
по отзывам, мап на 100к записей ест много памяти и подтормаживает. Да и 
выглядит как ужасный костыль.


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