ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Маленький patch дл я nginx реализующий request/sec



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



 




Copyright © Lexa Software, 1996-2009.