• 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 &
  • 相关阅读:
    gearman简介及安装使用
    Linux下进程的建立
    Linux中无缓冲文件I/O API
    XMLRPC for PHP简介及使用
    数据库水平切分方法
    LVS简介及使用
    进程通信之消息队列
    install docker/dockercompose
    centOS7 下安装 JDK
    iTerm2/firewall/pulsar
  • 原文地址:https://www.cnblogs.com/bill2014/p/12905546.html
Copyright © 2020-2023  润新知