uwsgi队列的套接字消息泛滥?

uwsgi队列的套接字消息泛滥?

我发现我的网站没有响应,我看到大量

*** uWSGI listen queue of socket "0.0.0.0:5002" (fd: 3) full !!! (101/100) ***
*** uWSGI listen queue of socket "0.0.0.0:5002" (fd: 3) full !!! (101/100) ***
*** uWSGI listen queue of socket "0.0.0.0:5002" (fd: 3) full !!! (101/100) ***

我是不是被 ddos​​ 攻击了?发生了什么事?

答案1

该应用程序当前正忙于处理 100 个请求。它正在拒绝进一步的请求。

也许您正在遭受 DDoS 攻击,也许应用程序非常慢或被阻止,也许用户太多而应用程序的硬件资源太少。如果没有更多信息,无法判断这是哪种情况。

看看这个。我不知道您使用什么 WSGI 工具来为您的环境提供精确的设置。

增加工人/流程的数量。每个 worker 一次可以处理一个请求。多个 worker 可以并行处理多个请求,通常每个核心 1 个 worker。

将监听队列增加到 500。中等数量的用户有时会产生数百个请求。假设有足够的资源在短时间内处理这些请求,则需要更大的队列来处理该数量的流量。

检查你的申请。确保它运行良好且高效。有上百个请求正在等待处理,这正常吗?应用程序可能运行缓慢、挂起或资源不足。

答案2

记住使用以下命令将 net.core.somaxconn 提高到 200:

sysctl -w net.core.somaxconn=200

或者从 /etc/sysctl.conf 配置文件中将其永久化

答案3

添加 uwsgi 配置:

processes = 8
threads = 4
max-fd = 120000
listen = 1024

相关内容