锁定老帖子 主题:Twitter性能提升的秘籍
精华帖 (0) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-02
最后修改:2009-04-04
来自Twitter的开发人员Evan最近在QCon做了一个演讲,介绍了优化细节: http://www.slideshare.net/Eweaver/improving-running-components-at-twitter 几个和Ruby相关的优化内容: 1. 采用了写入式缓存替代原先的读取式缓存,Twitter已经开源了这个插件cache-money 2. 采用基于C库的memcached client取代原先的ruby库,通过改进的hash算法和multiget,从原先没有cache的情况下每秒3.23个请求可以提高到139.03个请求,这个库也是开源的,Evan还提供了Twitter目前在用的稳定版本 3. Ruby的GC太差,用Scala改写了中间层的MQ Server,这里有一篇关于Twitter使用Scala的详细报道: http://www.artima.com/scalazine/articles/twitter_on_scala.html 4. 给Ruby打了一些GC补丁,比如MBARI/Railsbench,速度有35%的提升。Evan还公布了Twitter设置的Railsbench patch GC参数,可以参考一下。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-04-02
对第三点比较有兴趣,不知道这个MQ Server是个什么样的东东
|
|
返回顶楼 | |
发表时间:2009-04-03
t0uch 写道 对第三点比较有兴趣,不知道这个MQ Server是个什么样的东东
好像也是Twitter的starling |
|
返回顶楼 | |
发表时间:2009-04-03
最后修改:2009-04-03
t0uch 写道 对第三点比较有兴趣,不知道这个MQ Server是个什么样的东东
Message Queue Server 吧,我的理解是用来执行异步任务。Twitter 有个 gem starling 就是一个 MQ Server 实现,另外还有人做了个叫 workling 的插件,支持包括 starling 和 spawn 等多种不同的 runner 后端,很好用。 参考这个 http://playtype.net/past/2008/2/6/starling_and_asynchrous_tasks_in_ruby_on_rails/ |
|
返回顶楼 | |
发表时间:2009-04-03
ActiveMQ就行,stomp协议可以用
|
|
返回顶楼 | |
发表时间:2009-04-03
starling是ruby写的MQ,限于ruby GC的性能,还是不行。twitter后来用scala重新了一遍starling,这个就是kestrel项目,性能和稳定性都好于starling。
scala是个很有意思的东西,跑在JVM上面的脚本语言,可以编译为Java class,很有前途。 |
|
返回顶楼 | |
发表时间:2009-04-03
我记得Twitter还要用Erlang... 忘记他们是用在什么地方的了...
|
|
返回顶楼 | |
发表时间:2009-04-03
刑天战士 写道 ActiveMQ就行,stomp协议可以用
ActiveMQ不是不好用,个人觉得太bloated了 其实有很多的轻量级的Queue可以选择,刨去哪个starling,还有beanstalkd和最近重新用c改写的gearman。 目前都还不支持持久化,不过都有支持的计划。。。 |
|
返回顶楼 | |
发表时间:2009-04-03
問個問題.
Twitter當初為什麽會選型rails呢?Twitter使用不是很多.初步感覺功能頁面也不是很多.如果選用java或php是不是不用在性能方面費這么多事... |
|
返回顶楼 | |
发表时间:2009-04-03
yb31 写道 問個問題.
Twitter當初為什麽會選型rails呢?Twitter使用不是很多.初步感覺功能頁面也不是很多.如果選用java或php是不是不用在性能方面費這么多事... 不了解Twitter当初用rails的原因,不过根据我个人经历和接触过的开发人员,大部分用了Rails以后就不会再想用Java了,5行ruby代码可以搞定的事情,Java要用30行代码+20行配置,太累了。 |
|
返回顶楼 | |