首页 > 解决方案 > 分析 uwsgi+nginx 背后的生产烧瓶应用程序

问题描述

我有一个在 linux (centos) 上运行在 uwsgi+nginx 后面的烧瓶应用程序。

我想分析应用程序以找到瓶颈(每个功能花费的时间)。这是一个繁重的应用程序,有 8 个工作人员在生产环境中运行。

虽然这似乎是非常基本的要求,但我还没有找到一个好的生产分析系统。

我曾尝试使用 python 信号库生成配置文件,如“ https://www.nylas.com/blog/performance/ ”中所建议的那样 - 但我遇到了一个问题:signal() 操作只允许在主线程,而生产 uwsgi 运行很少的工人。此外,出于性能考虑,我们允许孤儿,因此仅在主服务器上运行操作不会对孤儿进行。任何建议将不胜感激!

这是我们的 uwsgi 配置:

    [uwsgi]
    虚拟主机 = 真
    uid = 流浪汉

    基地= /项目/
    wsgi 文件 = /project/webserver/src/wsgi.py
    chdir = %(基础)

    chown-socket = nginx:nginx
    捕获异常 = true
    uid = nginx
    gid = nginx
    chmod-socket = 777
    套接字 = /var/run/webpage.com.uwsgi.socket
    插件 = python,dogstatsd
    #插件=蟒蛇
    大师=真
    可调用 = 应用

    进程 = 8
    线程 = 24
    最大请求数 = 64
    #reload-on-as = 2000
    重新加载怜悯 = 3600
    #reload-on-rss = 4000
    #limit-as = 10000
    cpu 亲和力 = 1
    #线程堆栈大小 = 1024
    最大 fd = 250000
    #缓冲区大小 = 30000
    雷锁=真
    真空=真
    启用线程 = true
    #no-orphans = true
    长期死亡=真
    #socket 超时 = 600
    #websocket-max-size = 16000
    #logto = /var/log/uwsgi/log.txt
    统计 = /tmp/uwsgi_stats.socket

标签: pythonprofilinguwsgi

解决方案


推荐阅读