Flask 经常无响应了,怎么解决? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cmmulxuk
V2EX    Flask

Flask 经常无响应了,怎么解决?

  •  
  •   cmmulxuk 2016-04-05 10:44:18 +08:00 7970 次点击
    这是一个创建于 3541 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Flask 过一两天就无响应了,重启 VPS 就好了。
    就是很简单的查询数据库的应用,无任何异常。
    就是一段时不访问,就无反应了,需要重启 VPS 。
    17 条回复    2022-11-18 10:48:56 +08:00
    zonghua
        1
    zonghua  
       2016-04-05 11:08:03 +08:00
    响应码是什么?没有日志吗?
    clino
        2
    clino  
       2016-04-05 11:14:39 +08:00
    除了找出根本原因外,也可以用 uwsgi 来部署来快速规避这个问题,有自动 kill 挂掉的进程的功能,也有一个 --harakiri ,如果一个进程对于请求在给定的时间内不响应就 kill 重启,另外也有占用的内存如果达到给定的上限就 kill 重启

    另外你为什么要重启 vps 才能好?应该重启服务进程就行了吧?
    peter999
        3
    peter999  
       2016-04-05 11:23:37 +08:00
    是不是进程挂了,我之前在阿里云上的服务器,如果内存用尽就会被系统 kill 掉。
    strahe
        4
    strahe  
       2016-04-05 11:30:50 +08:00
    感觉是系统层面的问题 不是 flask 应用层的问题
    cmmulxuk
        5
    cmmulxuk  
    OP
       2016-04-05 11:31:07 +08:00
    @peter999 应用很小,内存足够,系统也很干净。就是自己用的小工具,所以 2,3 天都访问不了 1 次。
    cmmulxuk
        6
    cmmulxuk  
    OP
       2016-04-05 11:32:15 +08:00
    @strahe 系统我没有修改什么啊,内存也足够了,就是经常没有任何访问,几天才访问 1 , 2 次。
    zonghua
        7
    zonghua  
       2016-04-05 11:37:22 +08:00
    @clino https://v2ex.com/t/268433 我对使用 uwsgi 有疑问,帮忙看一下谢谢
    clino
        8
    clino  
       2016-04-05 12:02:47 +08:00
    @zonghua 我就看出来你的重启命令明明用的是 start 而不是 restart
    yangtukun1412
        9
    yangtukun1412  
       2016-04-05 13:22:11 +08:00
    @cmmulxuk 看描述感觉是数据库连接断了,代码里没做重连处理。
    DeanThompson
        10
    DeanThompson  
       2016-04-05 14:09:50 +08:00
    我觉得 @yangtukun1412 说的可能是对的。用的是 MySQL 数据库吗,如果两三天都没有访问,数据库连接会断开。不知道你是怎么连接数据库的,可以考虑使用 SQLAlchemy. 另外,卡住了也不需要重启 VPS 的,直接重启应用就可以。
    dynastysea
        11
    dynastysea  
       2016-04-05 14:14:00 +08:00
    加调试日志,这种绝对是代码的问题,不知道怎么定位就把日志给加全了
    clarkchen
        12
    clarkchen  
       2016-04-05 14:21:29 +08:00
    Flask 是单进程的应用,即使用容器比如 gunicorn 的话,也只是相当于多开几个单进程的服务而已。。。所以如果你量大的话,很可能是后台的处理速度跟不上前台的请求速度了,如果用的是 Flask 架构的话,建议多加机器。。如果量小很可能是数据库的原因, MySQL 和 Mongo 的可能性一半一半, MySQL 处理建议使用 SQLAlchemy , Mongo 的话 pymongo 要加上超时时间
    cmmulxuk
        13
    cmmulxuk  
    OP
       2016-04-05 15:48:55 +08:00
    @yangtukun1412
    @DeanThompson
    是自己写的小工具,连接 sqlite 查询数据返回结果的,很小的。
    数据库连接也是即用即连即断。
    neoblackcap
        14
    neoblackcap  
       2016-04-05 19:13:14 +08:00
    先加日志,看看程序到底为什么不响应
    biexiawo
        15
    biexiawo  
       2016-04-05 22:30:38 +08:00 via Android
    你是用的 apache 还是 nginx ?
    cmmulxuk
        16
    cmmulxuk  
    OP
       2016-04-06 09:40:25 +08:00
    @biexiawo nginx
    minidickcn
        17
    minidickcn  
       2022-11-18 10:48:56 +08:00
    我遇到的是开放的端口被其他人扫描了,进程就卡住了,按 Ctrl+C 后恢复正常
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3216 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 11:22 PVG 19:22 LAX 03:22 JFK 06:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86