Маленький patch для nginx реализующий request/sec
Maxim Dounin
mdounin at mdounin.ru
Wed Apr 30 22:30:11 MSD 2008
Hello!
On Tue, Apr 29, 2008 at 07:05:07PM +0400, Kirill A. Korinskiy wrote:
>Сегодня хочется дать на суд общественности маленький patch для nginx который
>добавляет в статиктику количество запросов в секунду:
>http://catap.ru/blog/2008/04/29/nginx-skolko-u-nas-zaprosov-v-sekundu/
Тут уже много сказали про "нужно/не нужно", добавлю ещё немного
про сам патч. Вот тут:
% @@ -446,6 +453,18 @@ ngx_http_init_request(ngx_event_t *rev)
% ngx_atomic_fetch_add(ngx_stat_reading, 1);
% r->stat_reading = 1;
% ngx_atomic_fetch_add(ngx_stat_requests, 1);
% +
% + ct = ngx_time();
% + ls = *ngx_stat_requests_last_seconds;
% + sr = *ngx_stat_requests;
% + rl = *ngx_stat_requests_last;
% +
% + if (ct > ls) {
% + ngx_log_error(NGX_LOG_INFO, c->log, 0, "ct:%d ls:%d sr:%d rl:%d", ct, ls, sr, rl);
% + *ngx_stat_requests_per_seconds = (sr - rl) / (ct - ls);
% + *ngx_stat_requests_last = sr;
% + *ngx_stat_requests_last_seconds = ct;
% + }
% #endif
%
% rev->handler(rev);
не делается никаких блокировок, меж тем операции - ни разу не
атомарные. Т.е. на выходе вообще говоря - цена на дрова.
Ну то есть смотреть глазами - наверное будет работать (если знать
и ничему не удивляться), а куда-то ещё - лучше дифференцировать
заведомо корректные значения.
Maxim Dounin
More information about the nginx-ru
mailing list