Маленький 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