我有一台服务器上安装nginx服务一些文件下载。 我也没有改变nginx的 默认configuration 。
问题是,当我尝试从这个服务器下载时,似乎有一个连接的限制,因为当我尝试下载与10连接Axel时 ,它比wget有一个连接快大约3倍 。
我怎样才能删除这个限制,以便用户能够以最快的速度从这个服务器下载一个连接?
是因为我的configuration更快地使用axel ,还是因为networking和互联网的特点?
更新:
在第一个评论表明我的比较是错误的,我把我的testing改为axel -n 1 Vs. axel -n 10 。 现在他们之间没有太大的区别,但是使用多个连接还是要快一点。 (一个连接780KB / s ,十个连接830KB / s )。
这与nginxconfiguration无关吗?
这种差异可能不是由于nginx造成的,而是由TCP栈(无论是在客户端还是在服务器上)造成的。
最明显的区别是,通过使用10个同时连接,对于TCP缓冲区,使用多达10倍的内存比使用单个连接。 这也意味着通过增加缓冲区大小,您有很大的机会提高单个连接的吞吐量(同时您可能会减less服务器可以处理的连接数 – 每个故事总是有两面)。
有几十个参数用于调整TCP堆栈。 有关更多信息,请参见tcp(7)手册页。
如果你只是想玩缓冲区大小,你可以通过/proc一些文件来做到这一点:
/proc/sys/net/core/rmem_max /proc/sys/net/core/wmem_max /proc/sys/net/ipv4/tcp_rmem /proc/sys/net/ipv4/tcp_wmem 不要忘记这适用于服务器以及客户端。