Welcome! Log In Create A New Profile

Advanced

Re: Улучшение ngx_http_limit_req_module

Pavel V.
February 02, 2016 11:10AM
Здравствуйте, Валентин.

> Невозможно добавить или убрать ограничение, не повлияв на работу остальных.

В моей схеме можно добавить дополнительное тестовое ограничение, которое не
сможет приводить к отклонению запроса, а значит не повлияет на подсчет запросов
в остальных зонах.

>> В моей схеме можно добавить новую зону в тестовом режиме в дополнение к уже
>> настроенным ограничениям. Не понимаю, как добавление новой тестовой зоны сможет
>> повлиять на уже настроенные ограничения.

> Если директива приводит к отклонению запроса, то он не будет учтен во всех
> зонах. Если мы сделаем режим таким, что при этом запрос будет учтен, но не
> будет отклонен, то это не даст нам возможности оценить работу директивы,
> поскольку всё будет работать несколько не так, как если бы dry-run был выключен
> и не позволит оценить реальное влияние директивы на количество пропущенных
> запросов.

Тестовое ограничение не может приводить к отклонению запроса, значит запрос
может быть отклонен только другой, не тестовой директивой.

Если состояние тестируемой зоны показывает необходимость отклонения
запроса этой зоной, то запрос в этой тестовой зоне не учитывается независимо от
того, будет ли отклонен запрос другими зонами или нет. В остальных зонах запрос
учитывается согласно окончательному решению по отклонению или пропуску запроса,
на которое тестируемая зона не влияет.

Если другие, не тестовые директивы, не отклоняют запросы, то их подсчет в
тестовой зоне ведется и будет соответствовать реальной картине потока запросов.

Если другие, не тестовые директивы, отклоняют запросы, а тестовая зона не
отклоняет - значит тестируемая зона имеет менее жесткие ограничения, что
является для нас метрикой допустимости перевода её в боевой режим.

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

> Если мы будем действовать также, как без режима dry-run, но только пропускать
> запрос, то это повлияет на работу сервера парадоксальным образом - более
> жесткое ограничение в режиме dry-run будет приводить к пропусканию сервером
> большего количества запросов, чем при его отсутствии.

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

Я вижу применение например следующим:

limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s; #perip
limit_req_zone $server_name zone=two:10m rate=10r/s; #perserver

limit_req_zone $binary_remote_addr zone=test:10m rate=1r/s dry-run; #test zone

location / {
limit_req zone=test; # rate = 1 r/s, dry run
limit_req zone=one; # rate = 2 r/s
limit_req zone=two; # rate = 100 r/s
}

Цель добавления зоны test - увидеть, какое количество запросов будет
задержано/отклонено, если мы уменьшим rate с 2r/s до 1r/s в зоне one.

Я думаю, что вполне понятно то, что если в контексте есть ограничение с зоной
one с rate=2r/s, то добавление ограничения с тестовой зоной test с rate=3r/s не
покажет "количества ограничений", но это и не ожидается и не требуется.


--
С уважением,
Pavel mailto:pavel2000@ngs.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Улучшение ngx_http_limit_req_module

Pavel V. February 01, 2016 04:50AM

Re: Улучшение ngx_http_limit_req_module

Maxim Dounin February 01, 2016 08:26AM

Re: Улучшение ngx_http_limit_req_module

Pavel V. February 01, 2016 12:04PM

Re: Улучшение ngx_http_limit_req_module

Maxim Dounin February 01, 2016 01:18PM

Re: Улучшение ngx_http_limit_req_module

Pavel V. February 01, 2016 06:46PM

Re: Улучшение ngx_http_limit_req_module

Валентин Бартенев February 02, 2016 06:26AM

Re: Улучшение ngx_http_limit_req_module

Pavel V. February 02, 2016 08:24AM

Re: Улучшение ngx_http_limit_req_module

Валентин Бартенев February 02, 2016 09:00AM

Re: Улучшение ngx_http_limit_req_module

Pavel V. February 02, 2016 11:10AM

Re: Улучшение ngx_http_limit_req_module

Валентин Бартенев February 02, 2016 11:50AM

Re: Улучшение ngx_http_limit_req_module

Pavel V. February 02, 2016 01:32PM

Re: Улучшение ngx_http_limit_req_module

Валентин Бартенев February 02, 2016 02:06PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 227
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready