解决node js程序僵死问题总结 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bshu
V2EX    Node.js

解决node js程序僵死问题总结

  •  
  •   bshu 2013-12-17 14:31:31 +08:00 3995 次点击
    这是一个创建于 4382 天前的主题,其中的信息可能已经有所发展或是发生改变。
    node js 开发中碰到的僵死问题,发现其他兄弟也经常碰到,所以就小结一下。

    网站项目:火星问答 http://www.huoxingwenda.com/

    问题描述:当有较多用户访问时,正常运行一段时间就会出现程序僵死,页面无法打开的问题

    排查及解决:
    1、在测试环境里正常,程序重启后也能运行正常运行一段时间,而且程序僵死后并没退出,所以应该不是显性的程序错误。
    2、在程序错误时,尝试访问不同类型页面,发现不需要数据库数据的页面可以访问,一涉及到数据库就不能访问,但数据库运行正常,所以应该是程序和数据库连接问题。由于所有与数据库相关页面都不能正常访问,也说明不是单个数据查询出现问题,而是程序无法连接数据库了。
    3、由于此程序使用了pool功能,程序通过pool分配的connection与数据库连接,出现以上问题,初步断定是connection无法正常分配了。
    4、检查程序中涉及到pool的程序,发现某些条件下没能及时release connection,导致连接资源耗尽。修复这些地方,问题解决

    **node js里都是异步的,对于占用资源的分支一定要保证无论是否正确执行完都要释放相关资源,基本就不会僵死了**
    3 条回复    1970-01-01 08:00:00 +08:00
    rankjie
        1
    rankjie  
       2013-12-17 19:11:48 +08:00 via iPhone
    释放资源这种事情不管异步同步或者python/nodejs/whatever都需要吧=_=
    bshu
        2
    bshu  
    OP
       2013-12-17 19:31:51 +08:00
    @rankjie 以前是用java和php编程,从没有留心过这种事儿,因为是同步的,所以执行顺序是可预知的,资源使用后然后释放就可以了,但是在异步环境了,因为顺序不是预想的,导致无法释放资源
    turing
        3
    turing  
       2013-12-18 22:40:34 +08:00
    lz 用的是什么ORM?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1581 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 16:23 PVG 00:23 LAX 08:23 JFK 11:23
    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