Tornado Documentation
› http://www.v2ex.com/tornado/
Tornado on GitHub
› https://github.com/facebook/tornado/
Tornado Gists
› http://tornadogists.org/
wingyiu
V2EX  ›  Tornado

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

  •  
  •   wingyiu · Jun 3, 2015 · 7334 views
    This topic created in 4174 days ago, the information mentioned may be changed or developed.
    如题,nginx+3tornado只跑了30RPS,怎么破?正常不?
    15 replies  •  2015-08-01 10:27:09 +08:00
    zhouquanbest
    zhouquanbest
    Jun 3, 2015
    1
    不是吧 和你一样的配置 单tornado 我有连sql的操作都能跑90RPS

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

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

    真的要完全利用tornado的并发威力,请去自己写一个异步请求服务或者库,要不然都是堵塞的。它本身的并发能力肯定展现不出来
    zhouquanbest
    zhouquanbest
    Jun 3, 2015
    7
    @wingyiu
    多个不是为了速度 是防阻塞
    wingyiu
    wingyiu
    OP
    Jun 3, 2015
    8
    @neoblackcap 我怀疑我用supervisor启动的tornado 10个进程共用一个数据库链接了,真是奇怪
    neoblackcap
    neoblackcap
    Jun 3, 2015
    9
    @wingyiu 怎么会呢?难道你自己做了进程间通讯啊?肯定不可能是你的tornado实例共用一个数据库连接,你自己可以用数据提供的运维工具看看,Mysql的是mysqladmin,就可以看到具体是多少个连接在连着数据。
    wingyiu
    wingyiu
    OP
    Jun 3, 2015
    10
    @neoblackcap
    @zhouquanbest
    求加qq请教
    Chichele
    Chichele
    Jun 4, 2015
    11
    @neoblackcap 将db封装成http api...太丧心病狂了!!我一直还挺好奇呢数据库那些都挺少有异步库的
    neoblackcap
    neoblackcap
    Jun 4, 2015
    12
    @tigerstudent 就是这么丧心病狂,然后就直接用tornado的AsyncHttpClient去请求,所以这个就大概是为什么tornado会自带异步的http client的原因。
    zeeler
    zeeler
    Jul 31, 2015
    14
    加个cache层吧,瓶颈不一定在tornado上。可以考虑单独测试一下,比如tornado只跑个输出hello world的handler
    wingyiu
    wingyiu
    OP
    Aug 1, 2015
    15
    @zeeler 瓶颈在带宽
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   897 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:51 · PVG 04:51 · LAX 12:51 · JFK 15:51
    ♥ Do have faith in what you're doing.