优化Nginx的下载功能
缘起:
我购置了一台阿里云ECS,其EIP带宽3m/s,但是在其上的作为下载文件的服务器nginx提供的下载速度仅有几百KB。
分析:
既然没有达到带宽瓶颈,肯定存在优化的空间。浮现脑海的想法,nginx没有进行最佳配置?nginx进程的CPU/内存/IO使用情况如何? 考虑到下载文件,nginx从磁盘读入内存,再从内存输送到网络,磁盘是否存在瓶颈?nginx代码的运行情况如何?
第一弹,在nginx默认配置的情况下,观察nginx进程的情况
此场景下的观察分两种,本地下载,远端下载。
本地下载,
# 使用curl下载文件
curl -o windows_11_professional_x64_2025.iso localhost:80/windows_11_professional_x64_2025.iso#使用iotop观察curl和nginx进程的io使用情况
sudo iotop -d 1 -p `ps -ef | grep curl | awk {'print $2'}`
远端下载
优化Nginx的相关配置: