D state when high load on same static file.

Maxim Dounin mdounin at mdounin.ru
Thu Dec 22 08:41:47 UTC 2011


Hello!

On Wed, Dec 21, 2011 at 11:22:58PM -0500, atrus wrote:

> I have some file hosting servers running nginx, serving static files
> which size average from 500MB to 6GB.
> The servers use Lustre1.8 as cluster filesystem.
> Files stay on some raid6 array with stripe size = 512KB.
> 
> At normal situation, nginx works very well. 

[...]

> But, when in hot situation (when a new hot file, may be a porn dvd or
> JAV recently uploaded), there are a lot of clients (more than 800)
> download that file at the same time, and nginx processes are going to D
> state. 
> At last, nearly all processes are D state ! This makes the download
> speed very slow :(

[...]

> I have tried many time tuning the number of process worker, but I didn't
> work !
> How can I fix this ? I think when a lot off client access the same file,
> it suppose to be better because of caching ?!

No, filesystem cache isn't supposed to work as you specifically 
requested directio:

[...]

>         directio        1m;

[...]

You may try removing the "directio" directive to see if it helps, 
but with large working set it make make things worse.

Also it's a good idea to try using AIO, see
http://nginx.org/en/docs/http/ngx_http_core_module.html#aio

Maxim Dounin



More information about the nginx mailing list