Welcome! Log In Create A New Profile

Advanced

Inconsistent time measurement in Nginx

Zexuan Luo
September 27, 2021 10:30PM
Hi, Nginx developers:

Currently, the request_time uses ngx_timeofday to get the time, which
finally will call gettimeofday. Meanwhile, the upstream_x_time series
uses ngx_current_msec to calculate the time, which finally will call
ngx_monotonic_time.

On Linux, the gettimeofday will call clock_gettime(CLOCK_REALTIME,
&ts) while the ngx_monotonic_time will call
clock_gettime(CLOCK_MONOTONIC_COARSE, &ts).

So the request_time uses CLOCK_REALTIME and the upstream_x_time series
uses CLOCK_MONOTONIC_COARSE. As they are different sources, sometimes
we observe that the upstream_response_time is larger than
request_time. This behavior is unexpected and has caused bug in our
software.

A similar report can be also found in
https://stackoverflow.com/questions/53978695/how-can-request-time-be-less-than-upstream-response-time-in-nginx.

Is this behavior intended? Why not use the same time measurement for
all metrics? Thanks for your reply.
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

Inconsistent time measurement in Nginx

Zexuan Luo 458 September 27, 2021 10:30PM

Re: Inconsistent time measurement in Nginx

Maxim Dounin 125 September 28, 2021 09:46AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 250
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