阿里云 ECS 1CPU 1G 1Mbs 跑 tornado 开多少进程合适? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wingyiu
V2EX    Tornado

阿里云 ECS 1CPU 1G 1Mbs 跑 tornado 开多少进程合适?

  •  
  •   wingyiu 2015 年 6 月 3 日 6791 次点击
    这是一个创建于 3944 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,nginx+3tornado只跑了30RPS,怎么破?正常不?
    15 条回复    2015-08-01 10:27:09 +08:00
    zhouquanbest
        1
    zhouquanbest  
       2015 年 6 月 3 日
    不是吧 和你一样的配置 单tornado 我有连sql的操作都能跑90RPS

    一般cpu count+2
    neoblackcap
        2
    neoblackcap  
       2015 年 6 月 3 日
    看你怎么实现吧,如果全部IO操作都已经改用异步处理的话(大概就像friendfeed他们丧心病狂地将db封装成http api)那么你开一个进程就可以了。

    如果不是的话,这个就难说了,具体你能不能给多点信息啊。30rps这样的话大概就是io严重堵塞了。
    wingyiu
        3
    wingyiu  
    OP
       2015 年 6 月 3 日
    @neoblackcap 只有db一个io啊,而且是一个进程一个db链接,库用的是torndb,貌似不是异步的
    wingyiu
        4
    wingyiu  
    OP
       2015 年 6 月 3 日
    @zhouquanbest 实测证明1Core 1Process就行了,再多也不会有提升
    wingyiu
        5
    wingyiu  
    OP
       2015 年 6 月 3 日
    @neoblackcap log里看出无并发时单个请求都是10ms一下的,-c 100就变成50ms了,CPU负载基本为5%以下
    neoblackcap
        6
    neoblackcap  
       2015 年 6 月 3 日
    @wingyiu CPU负载这么低,肯定是IO堵塞了。大工程啊,我现在还是看到很多人去开多进程来启动tornado,多开就好了,这个数目没有定数的,理论上是说多少核开多少个,但是实际还是要根据你情况来。多开一下就CPU会上去(上下文切换),并发也就上去了。

    真的要完全利用tornado的并发威力,请去自己写一个异步请求服务或者库,要不然都是堵塞的。它本身的并发能力肯定展现不出来
    zhouquanbest
        7
    zhouquanbest  
       2015 年 6 月 3 日
    @wingyiu
    多个不是为了速度 是防阻塞
    wingyiu
        8
    wingyiu  
    OP
       2015 年 6 月 3 日
    @neoblackcap 我怀疑我用supervisor启动的tornado 10个进程共用一个数据库链接了,真是奇怪
    neoblackcap
        9
    neoblackcap  
       2015 年 6 月 3 日
    @wingyiu 怎么会呢?难道你自己做了进程间通讯啊?肯定不可能是你的tornado实例共用一个数据库连接,你自己可以用数据提供的运维工具看看,Mysql的是mysqladmin,就可以看到具体是多少个连接在连着数据。
    wingyiu
        10
    wingyiu  
    OP
       2015 年 6 月 3 日
    @neoblackcap
    @zhouquanbest
    求加qq请教
    tigerstudent
        11
    tigerstudent  
       2015 年 6 月 4 日
    @neoblackcap 将db封装成http api...太丧心病狂了!!我一直还挺好奇呢数据库那些都挺少有异步库的
    neoblackcap
        12
    neoblackcap  
       2015 年 6 月 4 日
    @tigerstudent 就是这么丧心病狂,然后就直接用tornado的AsyncHttpClient去请求,所以这个就大概是为什么tornado会自带异步的http client的原因。
    wingyiu
        13
    wingyiu  
    OP
       2015 年 6 月 5 日   1
    zeeler
        14
    zeeler  
       2015 年 7 月 31 日
    加个cache层吧,瓶颈不一定在tornado上。可以考虑单独测试一下,比如tornado只跑个输出hello world的handler
    wingyiu
        15
    wingyiu  
    OP
       2015 年 8 月 1 日
    @zeeler 瓶颈在带宽
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     963 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 19:00 PVG 03:00 LAX 12:00 JFK 15:00
    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