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

Hello,

     I followed this post

http://stackoverflow.com/questions/11250798/best-file-system-for-serving-1gb-files-using-nginx-under-moderate-write-read-p
to optimize nginx for large static files i.e (flv,mp4) and enabled aio
on
nginx config which you can see below, and after enabling aio, directio,
and
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
to
the conclusion that after enabling these directives , the i/o util%
starts
getting higher and svctime start getting reduced.

1.Can someone guide me if aio directive helps improving nginx flv
stream,
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)$ {
flv;
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.

Hello

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
Centos,
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
and
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

======
Crilance.com
Crilance.blogspot.com

We’ve got similar setup to you, 1db server, 3 www servers (App
clustering),
5 content servers(nginx-1.2.1) for static content i.e (jpg,flv,mp4) but
we
don’t have a separate conversion server, conversion and streaming is
served
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.