Fwd: Measuring request processing time

Maxim Dounin mdounin at mdounin.ru
Wed May 27 14:53:47 UTC 2015


On Wed, May 27, 2015 at 05:08:52PM +0300, Дмитрий Шалашов wrote:

> Hi!
> Is there a way to measure time Nginx takes to process request? Not
> $request_time, but rather something like "time between request was fully
> read and request is ready to pass it to the backend".
> I need it to evaluate perfomance of the geoip2 module:
> https://github.com/leev/ngx_http_geoip2_module
> I need this because I've measured speed of official MaxMind Perl modules
> for legacy and new versions of their databases and found that lib for new
> version is hundreds times slower than legacy. (yes, I've used XS version)
> Now, I will be using new format anyway - because MaxMind provide only free
> legacy databases, and free databases have way too bad accuracy.
> But I would like to assess the consequences.
> Maybe $request_time - $upstream_response_time will fit?

I don't think that resolution of nginx time-related variables will 
be enough to measure geoip lookup times.   If you want to evaluate 
performance, I would rather suggest to write some simple configs 

        location = /geoip1 {
            return 200 $geoip_country_code;

        location = /geoip2 {
            return 200 $geoip2_data_country_code;

        location = /static {
            return 200 XX;

and to try benchmarking them with something like wrk.

Maxim Dounin

More information about the nginx mailing list