flask 运行时阻塞

之前并没有研究过flask在大量不同请求的情况下请求的处理机制,最近发现自己的一个监控系统的Recv-Q 堆积过多,然后看了一下是程序的处理能力的问题。

1、看见服务器Recv-Q较多,消费不及时

[root@iZbp1ftexcphcvhbglvmz8Z ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        12      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      17051/python        

2、索性就测试了一下flask的阻塞情况

@api.route('/')
#@auth.login_required
def index():
    import time
    time.sleep(15)
    return {
        print("hello world")
    }

同时执行了两个请求,上面这个先执行,后面在执行一个不同的请求,就会先等上面这个15秒的执行完了才会执行另一个不同的接口。

3、然后修改主程序

1)增加gevent

2)启动的时候开启多线程 

nohup python manage.py runserver -d -r -h 0.0.0.0 -p 9527 --threaded &

 

posted @ 2020-05-17 16:00  腐汝  阅读(2669)  评论(0编辑  收藏  举报