much iowait - how to reduce?

Edo Frederix edofrederix at gmail.com
Tue Jun 17 14:16:03 MSD 2008


----- Original Message ----- 
From: "Igor Sysoev" <is at rambler-co.ru>
To: <nginx at sysoev.ru>
Sent: Tuesday, June 17, 2008 10:34 AM
Subject: Re: much iowait - how to reduce?


> On Mon, Jun 16, 2008 at 09:15:44PM +0200, Edo Frederix wrote:
>
>> I am running nginx/0.7.1 on my debian (2.6.24.3 kernel) system. You can 
>> see my nginx.conf here: http://pastebin.com/m63c18e1
>>
>> My system has much iowait: http://i27.tinypic.com/288crwm.jpg. This is 
>> due to some disk activity every 5 seconds. Here are some samples of 
>> "vmstat 1":
>>
>> procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
>>  0  2      0 3188220  41632  61408    0    0     0  2280 9119 6100  1  4 
>> 73 22
>>  0  0      0 3187680  41632  61936    0    0     0   272 10516 8027  1  4 
>> 93  2
>>  0  0      0 3188004  41632  61256    0    0     0     0 9446 6479  1  4 
>> 95  0
>>  0  0      0 3188052  41632  61216    0    0     0     0 9533 6893  1  3 
>> 96  0
>>  0  0      0 3187880  41632  62052    0    0     0     0 10639 8117  2  6 
>> 93  0
>>  0  0      0 3186936  41632  64132    0    0     0     0 9797 6898  1  4 
>> 95  0
>>  1  1      0 3189304  41636  61324    0    0     0  4692 9052 6414  1  4 
>> 65 29
>>  0  3      0 3188508  41636  62656    0    0     0  1124 9107 6302  2  4 
>> 72 22
>>  0  0      0 3187448  41636  63044    0    0     0     0 8601 5591  1  5 
>> 87  8
>>  0  0      0 3184968  41636  65344    0    0     0     0 10273 7832  2  6 
>> 92  0
>>  0  0      0 3184900  41636  65024    0    0     0     0 10104 7827  2  5 
>> 93  0
>>  1  0      0 3181960  41636  68428    0    0     0     0 9675 7242  2  5 
>> 93  0
>>  0  4      0 3183416  41636  68892    0    0     0  9528 7025 3921  1  2 
>> 55 42
>>  0  0      0 3186076  41636  63620    0    0     0   440 8508 5839  1  5 
>> 60 35
>>
>> As you can see in my nginx.conf, I have disabled logging (even error 
>> log). I can not determine where my disk is actually writing, but what I 
>> do know is that it is related to nginx. When our site gets busy (200mbit 
>> traffic), iowait increases. There are no other important processes 
>> running on the server.
>>
>> My question now is: Is this normal behaviour and how can I reduce the 
>> iowait?
>
> If you serve large static content, then this is normal: nginx worker
> processes wait on disk reads.
>
>
> -- 
> Igor Sysoev
> http://sysoev.ru/en/
>

I am not running large static content, only some small images and some php 
generated html from my backends. Besides, the disk is only writing, not 
reading:

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               8.00         0.00      1168.00          0       1168

Barry from wordpress.com told me that adding the line "client_body_temp_path 
/dev/shm;" would help, because of this quote:  "If the request body is more 
than the buffer, then the entire request body or some part is written in a 
temporary file." 
(http://wiki.codemongers.com/NginxHttpCoreModule#client_body_buffer_size). 
Now this client body should get written to some shared memory, not to the 
disk.

Doesn't seem to work though.. 






More information about the nginx mailing list