Timer_resolution / $request_time

Hello,

I’ve been using this settings for a while:
timer_resolution 100ms;
log_format combined_time '$remote_addr - $remote_user [$time_local] ’
‘"$request" $status $body_bytes_sent ’
‘"$http_referer" “$http_user_agent”’
’ $request_time’;
access_log /var/log/access.log combined_time;

Right now i’m needing more precise timestamp in logs
=> finding requests that took less than 50ms to complete.

I would like to know what are the drawbacks of using a lower number
(i.e 10ms, 0ms or not setting at all timer_resolution) and overhead that
would cause (if any).

thanks

-xavier

Hello!

On Thu, Aug 26, 2010 at 11:23:47PM +0200, Xavier Martin wrote:

Right now i’m needing more precise timestamp in logs
=> finding requests that took less than 50ms to complete.

I would like to know what are the drawbacks of using a lower number
(i.e 10ms, 0ms or not setting at all timer_resolution) and overhead that would cause (if any).

With timer_resolution unset (set to 0, default) nginx will call
gettimeofday() on every event loop iteration. With
timer_resolution set nginx will schedule
gettimeofday() calls at specified interval.

Obviously changing it from 100ms to 10ms would cause 10 times
more gettimeofday() calls. But most likely you won’t notice.

But actually I would recommend using the default (i.e. unset).
It’s not really different from 10ms on loaded servers and wouldn’t
cause extra work on otherwise idle servers.

Maxim D.

Is there anyway to get the request time in microseconds resolution in
order
to emulate Apache’s %D log format option?
It looks like the only option at this time is to just fake it with
something
like “$request_time000” (since 1 millsecond = 1000 microsecond)

Hello!

On Fri, Aug 27, 2010 at 02:41:52PM -0400, Arthur B. wrote:

Is there anyway to get the request time in microseconds resolution in order
to emulate Apache’s %D log format option?

No.

It looks like the only option at this time is to just fake it with something
like “$request_time000” (since 1 millsecond = 1000 microsecond)

${request_time}000

Maxim D.

that doesn’t actually work:

[emerg]: unknown “request_time000” variable

any ideas?