Forum: NGINX hard-disk util% got higher on enabling aio for nginx-1.2.1

Posted by shahzaib mushtaq (shahzaib12)
on 2013-02-04 18:39
(Received via mailing list)
Hello,

         I followed this post
http://stackoverflow.com/questions/11250798/best-f...
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.
Posted by Cristian R. (cristian_r)
on 2013-02-05 07:54
(Received via mailing list)
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 Rusu
Web Developement & Electronic Publishing

======
Crilance.com
Crilance.blogspot.com
Posted by shahzaib mushtaq (shahzaib12)
on 2013-02-05 08:15
(Received via mailing list)
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.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.