【uWSGI】 listen queue of socket 错误分析

【uWSGI】 listen queue of socket 问题分析

django的生产环境一般使用uWSGI部署,出现类似下面 listen queue of socket “127.0.0.1:9001” (fd: 3) 的错误

一、分析问题

在centos7的服务器上运行的python3.8容器,安装了以下库:

  • django3.1.7
  • uwsgi2.0.19.1

后端在高并发下,出现以下错误:

Tue Jun  2 17:33:27 2015 - *** uWSGI listen queue of socket "127.0.0.1:9001" (fd: 3) full !!! (101/100) ***
Tue Jun  2 17:33:28 2015 - *** uWSGI listen queue of socket "127.0.0.1:9001" (fd: 3) full !!! (101/100) ***

很明显,uwsgi的监听超出了最大连接数100

二、解决问题

1.1 临时修改

临时修改容器内部uWSGI的listen来提高最大连接数方法如下:

step1. 查看容器最大连接数

sysctl -a | grep net.core.somaxcon
>> net.core.somaxconn=128

step2. 修改容器最大连接数

echo 'net.core.somaxconn = 1024'  >>  /etc/sysctl.conf

step3. 重新加载

sysctl -p

step4. 修改uwsgi.ini文件

listen=1024

1.2 永久修改

以上方法在重启容器后失效,若要永久修改,需要写入Dockerfile文件中,参考如下:

FROM public-docker-virtual.artnj.zte.com.cn/python:3.8
COPY pip.conf /root/.pip/pip.conf
COPY ./requirements.txt /backend/
WORKDIR /backend
RUN echo 'net.core.somaxconn = 1024' >> /etc/sysctl.conf \
    && sysctl -p \
    && pip install --upgrade pip \
    && pip install -r requirements.txt
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值