python - 分析 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
解决方案
推荐阅读
- java - 尝试单击列表中的每个元素
- python - 您可以使用组对象提取 hdf5 的文件对象吗?
- javascript - 迭代对象并更改对象值
- c - 从 SSL 读取加密缓冲区
- python - 如何使用 Python 在 Selenium WebDriver 中获取用户代理信息
- node.js - 你如何使用 testdouble 模拟 typeorm 的 getManager?
- javascript - 使用 JS / Javascript 将当前日期添加到 HTML
- cross-platform - 跨平台方式确保某些操作曾经在本地机器上执行过
- javascript - Sinon Stub 不适用于导出的函数
- javascript - 正则表达式仅获取特定行