Simple question
http://mysite.com/bigFile.avi #this file is 800Mb
when I use this link and download the bigFile.avi from my browser,
My Nginx server jumps to 100%CPU load during the download session, static content, no php.
(normal php scripts uses 1-3% CPU)
I wonder if this is normal for my server?
It does consume so much CPU to serve large files?
(i even turn off the gzip in the nginx config, but not much difference)
As nginx can write large files in disk before sending them to the client, it's often a good idea to disable this cache if the site is going to serve big static files, with something like:
location / {
proxy_max_temp_file_size 0;
}
Take a look at these articles
- http://www.facebook.com/topic.php?uid=122166917825068&topic=325
- https://calomel.org/nginx.html (search for the "sendfile off" section)
I will admit that some of that is beyond me. But in short they suggest disabling sendfile, enabling aio, and increasing your output buffers if you're sending large (>4MB) files. What I took away is that most default server configs assume many small files will be sent, rather than few or many large files. These two different scenarios can require some very different configs to work efficiently.