Request_time for 206 typically bigger than that for 200

My logs of nginx proxy server typically report bigger request_time for
HTTP
206 responses than HTTP 200 responses. Any clue?

My nginx.conf:

worker_processes 3;

events {

worker_connections  10240;

}

worker_rlimit_nofile 10240;

http {

include       mime.types;

default_type  application/octet-stream;

resolver <resolver-ip>;



log_format combinedt '$remote_addr - $remote_user [$time_local] '

                '"$request" $status $body_bytes_sent '

                '"$http_referer" "$http_user_agent" "$request_time" 

                '"$http_x_forwarded_for" 

“$http_x_operamini_phone_ua” ’

                '"$http_x_device_user_agent" '

                '"$http_x_user_identify_forward_msisdn" ';



sendfile        on;

tcp_nopush     on;

tcp_nodelay    off;

keepalive_timeout  65;



server {

    listen       80;

    server_name  mycompany.com;



    access_log  logs/access.log  combinedt;



    location ~ ^/(.+\..+)/(.*)$ {

        proxy_pass   http://$1/$2;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }



    location ~ \.ico$ {

        access_log off;

    }

}

Here is an excerpt from a parsing results from my logs, in the format of
<$status> <$body_bytes_send> <$request_time> <byte/sec>. Last line is
the
average byte/second.

For 206:

.

206 1071136 104.804 10220.3

206 864602 361.400 2392.36

206 665823 62.378 10673.8

206 340613 2.017 168787

206 232374 108.086 2149.88

206 287320 1.576 182194

206 2499460 1029.404 2428.06

206 370583 61.838 5992.71

206 231842 104.210 2224.74

206 1383828 53.579 25827.3

206 268015 93.539 2865.24

206 323593 2.216 145960

206 1126868 48.648 23163.2

206 837788 49.027 17087.9

206 180304 1.177 153059

206 821728 48.512 16938.3

206 887124 69.203 12819

206 1675820 22.049 76000.9

206 191963 61.966 3097.83

206 618780 3.979 155472

206 923059 26.926 34280.1

206 2826310 457.514 6177.52

206 1776074 484.779 3663.67

206 1498523 104.756 14304.8

206 400673 114.239 3507.29

206 222323 60.819 3655.43

206 408796 142.116 2876.48

206 837788 96.229 8706.1

t-a 33117629 4799.17 6900.7 <== much smaller than 200 case below

For 200:

.

200 1217 0.013 86928.6

200 633734 0.033 1.86392e+07

200 635204 5.634 112725

200 476893 4.869 97924.6

200 633419 208.175 3042.71

200 1388 0.022 60347.8

200 955 0.012 73461.5

200 15708 0.004 3141600

200 14259 0.017 792167

200 1098 0.024 43920

200 1383 0.023 57625

200 1454 0.002 484667

200 1233 0.001 616500

200 1248 0.015 78000

200 1181 0.009 118100

200 1340 0.013 95714.3

200 1211 0.017 67277.8

200 1164 0.001 582000

200 1407 0.001 703500

200 1159327 46.200 25093.1

200 1182555 0.124 9460440

200 1097 0.011 91416.7

200 1467 0.016 86294.1

200 1106 0.014 73733.3

200 1306 0.011 108833

200 968437 3.827 252988

200 28293 0.443 63723

t-a 495417297 15932.7 31094.3

Hello!

On Fri, Jul 29, 2011 at 06:50:45PM -0700, Bo Shen wrote:

My logs of nginx proxy server typically report bigger request_time for HTTP
206 responses than HTTP 200 responses. Any clue?

[…]

Here is an excerpt from a parsing results from my logs, in the format of
<$status> <$body_bytes_send> <$request_time> <byte/sec>. Last line is the
average byte/second.

[…]

t-a 33117629 4799.17 6900.7 <== much smaller than 200 case below

Typically range requests (and 206 responses accordingly) are used
to download big files over slow links or resume broken downloads.
There is no surprise speed for 206 would be less than for 200.

Additionally, in sample you provided 200 responses are generally
small. For small responses calculating speed as $body_bytes_sent
/ $request_time isn’t really correct due to various factors
($request_time includes request reading time but not really
includes response sending time as nginx just writes data to socket
buffer and rest of the work is done by OS; $body_bytes_sent
doesn’t include headers).

Maxim D.