我有一个flask应用程序,该应用程序在linux(centos)上的uwsgi + nginx后面运行。
我想分析应用程序以查找瓶颈(在每个功能上花费的时间)。 这是一个繁重的应用程序,需要8名工人在生产上运行。
尽管这似乎是非常基本的要求,但我还没有找到一个好的生产配置文件系统。
我尝试使用python信号库生成“ https://www.nylas.com/blog/performance/”中建议的配置文件-但遇到了一个问题: 当生产uwsgi运行少量工作程序时,仅在主线程上允许signal()操作。 此外,出于性能方面的考虑,我们允许使用孤儿,因此仅在主节点上运行操作不会对孤儿起作用。 任何建议将不胜感激!
这是我们的uwsgi配置:
[uwsgi] vhost = true uid = vagrant base = /project/ wsgi-file = /project/webserver/src/wsgi.py chdir = %(base) chown-socket = nginx:nginx catch-exceptions = true uid = nginx gid = nginx chmod-socket = 777 socket = /var/run/webpage.com.uwsgi.socket plugin = python,dogstatsd #plugin = python master = True callable = app processes = 8 threads = 24 max-requests = 64 #reload-on-as = 2000 reload-mercy = 3600 #reload-on-rss = 4000 #limit-as = 10000 cpu-affinity = 1 #thread-stacksize = 1024 max-fd = 250000 #buffer-size = 30000 thunder-lock = true vacuum = true enable-threads = true #no-orphans = true die-on-term = true #socket-timeout = 600 #websocket-max-size = 16000 #logto = /var/log/uwsgi/log.txt stats = /tmp/uwsgi_stats.socket