我有一个带有 nginx 的小型 VPS 设置。我想从中榨出尽可能多的性能,所以我一直在尝试优化和负载测试。
我正在使用 Blitz.io 通过获取一个小的静态文本文件来进行负载测试,并遇到一个奇怪的问题,即一旦同时连接的数量达到大约 2000,服务器似乎正在发送 TCP 重置。我知道这是一个非常大量,但使用 htop 后,服务器在 CPU 时间和内存方面仍有大量空闲时间,所以我想找出这个问题的根源,看看我是否可以进一步推动它。
我在 2GB Linode VPS 上运行 Ubuntu 14.04 LTS(64 位)。
我没有足够的声誉直接发布此图表,因此这里是 Blitz.io 图表的链接:

以下是我为找出问题根源所做的工作:
worker_rlimit_nofile设置为 8192nofile设置为64000为硬性和软性限制root和www-data用户(什么nginx的运行为)/etc/security/limits.conf没有任何迹象表明有任何问题/var/log/nginx.d/error.log(通常,如果您遇到文件描述符限制,nginx 会打印错误消息,这样说)
我有 ufw 设置,但没有速率限制规则。ufw 日志表明没有任何内容被阻止,我尝试禁用 ufw 并得到相同的结果。
/var/log/kern.log/var/log/syslog我已将以下值添加到/etc/sysctl.conf并加载它们sysctl -p,但没有任何效果:
net.ipv4.tcp_max_syn_backlog = 1024
net.core.somaxconn = 1024
net.core.netdev_max_backlog = 2000
Run Code Online (Sandbox Code Playgroud)有任何想法吗?
编辑:我做了一个新的测试,在一个非常小的文件(只有 3 个字节)上增加到 3000 个连接。这是 Blitz.io 图表:

同样,根据 …