I have a bigFile.avi
which is 800MB and is at http://example.com/bigFile.avi.
When I use this link to download the bigFile.avi
from the browser, my nginx server jumps to 100% CPU load during the download session with no static content nor PHP (normal PHP scripts use 1-3% CPU).
Is this normal for the server? Does it consume so much CPU to serve large files?
I have even tried turning off the gzip in the nginx config, but there is not much difference.
To serve static files with nginx, you should configure the path of your application's root directory and reference the HTML entry point as the index file. In this example, the root directory for the snake deployment is /home/futurestudio/apps/snake which contains all the files.
By default, NGINX® has a upload limit of 1 MB per file. By editing client_max_body_size, you adjust the file upload size. Use the http, server, or location block to edit client_max_body_size. Changes to the http block affect all server blocks (virtual hosts).
To serve static files such as images, CSS files, and JavaScript files, use the express.static built-in middleware function in Express. The root argument specifies the root directory from which to serve static assets. For more information on the options argument, see express.static.
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
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With