我发现我的网站没有响应,我看到大量
*** 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