Hard-disk util% got higher on enabling aio for nginx-1.2.1


     I followed this post

to optimize nginx for large static files i.e (flv,mp4) and enabled aio
nginx config which you can see below, and after enabling aio, directio,
output_buffers, i could notice(iostat -x -d 3) that cpu util% got higher
from 10.00 to 35.00 and svctime got reduced to 1.00 from 4.00. So i came
the conclusion that after enabling these directives , the i/o util%
getting higher and svctime start getting reduced.

1.Can someone guide me if aio directive helps improving nginx flv
if yes than why it is utilizing too much hard-disk?
2. Reducing the svctime(iostat -x -d 3) for i/o is a good thing or not ?

http {
include mime.types;
default_type application/octet-stream;
client_body_buffer_size 128K;
sendfile_max_chunk 128k;
access_log off;
sendfile off;
client_header_timeout 3m;
client_body_timeout 3m;

server {
listen 80;
server_name domain.com;
client_max_body_size 800m;
limit_rate 100k;

    location / {
        root   /var/www/html/content;
        index index.html index.htm index.php;

location ~ .(flv|jpeg|jpg)$ {
root /var/www/html/content;
aio on;
directio 512;
output_buffers 1 8m;
expires 15d;
valid_referers none blocked domain.com;
if ($invalid_referer) {
return 403;

Best Regards.


It looks like you’r eon my spot right now.
I learned directio is useless for large files as it set nginx to skip
caching for anything larger than 512 Kb.
If you have enough RAM (128MB maybe) you get to cache videos and avoid
reading from HDD each time.
Some other people here said aio is not ideally either at least on
they said about FreeBSD but I have to google a bit on that.

I made it work using more servers, alrge one with slow HDDs for storage
fast server with SSD for caching.

So I have a setup of 1 www, 1 mysql, 2 storage, 2 edge servers and 2
converter servers each dealing with their specific tasks.
It works fine for 10Gbit and about 2500 users per second.

Cristian R.
Web Developement & Electronic Publishing


We’ve got similar setup to you, 1db server, 3 www servers (App
5 content servers(nginx-1.2.1) for static content i.e (jpg,flv,mp4) but
don’t have a separate conversion server, conversion and streaming is
by these 5 content servers and we’ve 32Gb Ram with Raid10 Sas drives and
1Gbps port for each of the content server and also got one large content
storage server with slow HDD i.e software Raid.

Please keep in mind that all the servers are using linux(centos-6).

  1. So should i disable aio for centos 6 ?
  2. What about sendfile, should i keep it off for all content servers?
  3. Can i enable aio for storage server ?

Best Regards.