V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
monetto
V2EX  ›  Python

如何减轻 Python Flask 服务的性能消耗

  •  
  •   monetto · 2021-03-19 15:33:07 +08:00 · 4357 次点击
    这是一个创建于 1339 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,环境太破,性能跟不上。

    光是挂个 Flask Demo,看 top CPU 就已经占了 15% 了...

    有没有什么办法能让 CPU 占用率下去一些...省点电

    在此谢过大佬

    33 条回复    2021-04-03 13:59:37 +08:00
    Cooky
        1
    Cooky  
       2021-03-19 15:37:03 +08:00 via Android
    nuitka 编译一下看看?要是有效果记得回我一下
    janxin
        2
    janxin  
       2021-03-19 15:37:53 +08:00
    15%就还好吧...跑在树莓派上?
    wzb0909
        3
    wzb0909  
       2021-03-19 15:40:35 +08:00
    minami
        4
    minami  
       2021-03-19 15:43:19 +08:00
    用其他 wsgi 服务器替代 Flask 自带的 wsgi
    XIVN1987
        5
    XIVN1987  
       2021-03-19 15:54:14 +08:00
    Flask 自带的服务器是开发用的,,性能很差,,部署应该用其他的,,比如 cherrypy
    est
        6
    est  
       2021-03-19 15:55:30 +08:00
    先搞个 16G 内存的服务器,再用 java 重写一遍。
    ruanimal
        7
    ruanimal  
       2021-03-19 16:12:11 +08:00
    @est 不如直接用 rust,c 艹
    yunyuyuan
        8
    yunyuyuan  
       2021-03-19 16:21:44 +08:00
    不是吧,flask 有什么性能消耗?你试试 django 就知道,当初我年轻在 1c2g 的 vps 上跑 django,直接给我整挂了。我跑两 tomcat app+一个 flask 都没挂的。
    charmToby
        9
    charmToby  
       2021-03-19 16:27:55 +08:00
    flask 性能没这么水吧?(虽然我没测试) 你怎么部署的?
    lixuda
        10
    lixuda  
       2021-03-19 16:32:41 +08:00
    @yunyuyuan 也没有那么夸张把,我 512m 的好几个 django,也基本没有什么问题
    monetto
        11
    monetto  
    OP
       2021-03-19 16:37:03 +08:00
    @Cooky 等有时间稍微试一下,不过感觉够呛,环境是 iOS,容易出现不兼容的问题。
    @janxin 不是,iOS 6.1.6 A4 处理器...
    wzb0909
        12
    wzb0909  
       2021-03-19 17:04:40 +08:00
    @minami
    @XIVN1987
    所以没有必要回答这种问题
    isSamle
        13
    isSamle  
       2021-03-19 17:07:35 +08:00
    @yunyuyuan 我 1C2G 挂了四五个 django 项目,每天都在重启😂
    monetto
        14
    monetto  
    OP
       2021-03-19 17:29:25 +08:00
    @minami
    @XIVN1987
    感谢二位老哥,我是做 Spring 开发的,这块不太了解。

    @est
    设备没有 JRE 环境呀...
    @wzb0909
    一直做 SpringBoot 开发,这块没了解过,见谅。
    LeeReamond
        15
    LeeReamond  
       2021-03-19 23:09:14 +08:00
    flask 本身属于比较慢的那类,同步框架本身慢一些,flask 又不是 tornado,bottle 之流。要减轻开销最好上异步
    so1n
        16
    so1n  
       2021-03-20 00:40:26 +08:00 via Android   ❤️ 1
    官方自带的只能用于测试
    seakingii
        17
    seakingii  
       2021-03-20 01:18:04 +08:00
    python 做服务感觉很吃亏啊,那性能。。。
    学 C#吧,重写一遍。
    houzhiqiang
        18
    houzhiqiang  
       2021-03-20 02:03:36 +08:00   ❤️ 1
    gunicorn + gevent + Flask
    LeeReamond
        19
    LeeReamond  
       2021-03-20 05:51:08 +08:00
    @seakingii 有一说一,我觉得 c#在 web 领域还不如 py
    monetto
        20
    monetto  
    OP
       2021-03-20 09:23:54 +08:00
    @LeeReamond @seakingii 兼容性考虑,环境是 iOS 6.1.6,能用的语言只有 Python2.7...
    jeeyong
        21
    jeeyong  
       2021-03-20 16:14:13 +08:00   ❤️ 1
    unicorn + fastapi ?
    chenqh
        22
    chenqh  
       2021-03-20 17:01:25 +08:00
    @monetto ios?
    tkmiles
        23
    tkmiles  
       2021-03-20 19:09:21 +08:00
    不嫌麻烦, 先分析性能瓶颈在哪, 看看哪里耗时再说改进吧
    如果想简单的, 换 go/c++/rust 噔噔噔噔噔.. 或者垂直升级呗
    seakingii
        24
    seakingii  
       2021-03-20 19:26:39 +08:00
    @LeeReamond 怎么可能在 WEB 领域不如 PYTHON
    seakingii
        25
    seakingii  
       2021-03-20 19:27:35 +08:00
    ios? 搞 web?
    zxCoder
        26
    zxCoder  
       2021-03-20 19:32:52 +08:00
    @LeeReamond c#性能很强的啊。。。
    abersheeran
        27
    abersheeran  
       2021-03-21 01:29:09 +08:00 via Android
    @monetto 那就 bottle 。
    monetto
        28
    monetto  
    OP
       2021-03-23 10:22:21 +08:00
    @jeeyong 已经用了 unicorn 了,感谢,不过 Win10 没法直接用,换 waitress 了。
    @chenqh 是的,家里闲置的设备,架设了点儿小玩具。
    @tkmiles 平台不允许主要是..
    @seakingii 知识搞点小玩具而已...开发还是用 PC 开发的。
    @abersheeran 已经上 waitress 了。看能耗还可以。
    jeeyong
        29
    jeeyong  
       2021-03-23 11:56:31 +08:00
    @monetto #28 win10 可以用啊..
    我一直是在 win10 用的啊..对不起, 是 uvicorn
    zepc007
        30
    zepc007  
       2021-03-31 17:42:21 +08:00
    @est 哈哈哈,笑死
    zepc007
        31
    zepc007  
       2021-03-31 17:43:36 +08:00
    @jeeyong uvicorn 吧
    jeeyong
        32
    jeeyong  
       2021-03-31 18:10:28 +08:00
    @zepc007 #31 嗯... 后面更正了
    huyu
        33
    huyu  
       2021-04-03 13:59:37 +08:00 via Android
    @yunyuyuan 不至于,我现在的网站就是 django 开发的,完全没这问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:51 · PVG 02:51 · LAX 10:51 · JFK 13:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.