首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >uWSGI +烧瓶请求数据性能问题

uWSGI +烧瓶请求数据性能问题
EN

Stack Overflow用户
提问于 2021-08-31 09:40:13
回答 1查看 229关注 0票数 0

我有一些性能问题时,配置我们的uWSGI应用程序运行。以前,它是在一个独立的tmux会话中运行的,使用:

代码语言:javascript
复制
python application.py run

现在,我已经使用以下服务文件将其重新配置为在uWSGI中运行:

代码语言:javascript
复制
[Unit]
Description=Flask App
After=syslog.target network.target

[Service]
Type=simple
Restart=always
RestartSec=30
User=nginx
Group=nginx
WorkingDirectory=/var/www/flaskapp
ExecStart=/bin/bash /var/www/flaskapp/run.sh
KillSignal=SIGQUIT

以及下面的运行脚本(因为我们在CentOS 7上运行Python3.8,默认情况下它不可用):

代码语言:javascript
复制
source scl_source enable devtoolset-9 rh-python38
source venv/bin/activate
uwsgi --ini uwsgi.ini

以及以下INI文件:

代码语言:javascript
复制
[uwsgi]
master = true
thunder-lock = true
http-socket = 0.0.0.0:5000
wsgi-file = application.py
virtualenv = /var/www/flaskapp/venv/
module = application:app
processes = 4
threads = 2
gid = nginx
uid = nginx
chmod-socket = 664
max-requests = 5000
harakiri = 60
socket = %dapp.sock
lazy-apps = true
vacuum = true
enable-threads = true
buffer-size = 32768

一切都正常,在使用ab进行测试时,我每秒钟都会收到更多的请求,所以基本上一切都很好。但是,在解析来自请求主体的参数(我们使用调试日志将其固定下来)时,似乎每个请求都有一个小延迟(我猜在300到1000 ms之间):

代码语言:javascript
复制
from flask_restful import request
...
args['data'] = request.get_json().get('data')

有人知道在uWSGI内部运行或从shell运行有关JSON解析的请求时有什么不同的行为吗?比如,尝试打开stdin的500 ms超时(据我所知,应该映射到/dev/null )或其他什么?或者可能有一些配置错误?

编辑:使用uWSGI 2.0.19.1 +Python3.8.6

EN

回答 1

Stack Overflow用户

发布于 2021-12-16 12:06:24

如果有人在找同样的问题,我找到了解决办法。

正如大多数指南建议在uWSGI之上使用nginx一样,我尝试过这样做,由于某种原因,在添加了一个额外层之后,性能问题就消失了。

nginx配置:

代码语言:javascript
复制
    location / {
        root /your/path/to/app;
        uwsgi_pass unix:////your/path/to/app/app.sock;
        include uwsgi_params;
    }

uWSGI INI:

代码语言:javascript
复制
[uwsgi]
...
chmod-socket = 664
socket = %dapp.sock
buffer-size = 32768
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68996400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档