Nginx Ubuntu对网络处理的限制
Ubuntu操作系统是否限制机器可以处理的最大请求数? 为了开始解决这个问题,我创建了一个Nginx代理服务器,其中一个后端服务器处理传入的POST请求。接下来,我将使用包pycurl以每次请求0.001秒(即1000个请求/秒)的速度向代理服务器地址发送总共1000个请求。(我还使用了具有类似结果的python包请求)。在服务器端,完成请求大约需要4秒,即250转/秒 当我将这个数字扩展到每次发送10000个请求。001秒,仍然是1000 RPM时,Nginx代理服务器在处理之前可以接收的请求数量似乎受到了一些批处理限制。这个上限似乎是1200 事件顺序Nginx Ubuntu对网络处理的限制,nginx,networking,ubuntu-18.04,nginx-reverse-proxy,nginx-config,Nginx,Networking,Ubuntu 18.04,Nginx Reverse Proxy,Nginx Config,Ubuntu操作系统是否限制机器可以处理的最大请求数? 为了开始解决这个问题,我创建了一个Nginx代理服务器,其中一个后端服务器处理传入的POST请求。接下来,我将使用包pycurl以每次请求0.001秒(即1000个请求/秒)的速度向代理服务器地址发送总共1000个请求。(我还使用了具有类似结果的python包请求)。在服务器端,完成请求大约需要4秒,即250转/秒 当我将这个数字扩展到每次发送10000个请求。001秒,仍然是1000 RPM时,Nginx代理服务器在处理之前可以接收的请求
鉴于此背景信息,是否存在限制计算机处理或接收请求速率的操作系统级别设置?如果是这样,如何改变这种情况?如果没有,是否存在可能导致此问题的网络限制?如果是,我如何测试或更改这些限制?[这是我评论的更新副本]
关于nginx,这可能是相关的:-检查
worker\u进程
和worker\u连接
除此之外,它似乎受到后端服务器的限制-您没有说太多关于它看起来像什么以及它如何处理请求的内容。您应该监视/跟踪您的流程,以确定它在做什么。
您还可以使用诸如netstat
、ss
、tcpdump
等工具来监视和跟踪后端服务器上的连接
其中一个限制显然是连接可用的最大端口数:对于单个源和目标,这大约是28K()-如果您正在快速创建和关闭连接,您可能会受到等待时间状态的限制(请参阅上面的链接)当连接关闭时,每个插座都会移动到它。
但是,您说您最多生成了10K个连接,所以看起来有些不同。关于nginx,这可能与:-检查
worker\u进程
和worker\u连接
有关。除此之外,它似乎真的受到后端服务器的限制-您没有说太多关于它看起来像什么以及它如何处理请求。其中一个限制显然是可用于连接的最大端口数:对于单个源和目标,这大约是28K(),因此您远远没有达到这一点,并且不要忘记您可能也达到了客户端的并发限制。为清楚起见,我将worker_进程设置为auto,并将worker connections设置为1024。(该机器是一个AWS lightsail实例,具有8个核心)。