财帮子,是国内一个专注于个人基金理财的网站,它提供开放式基金、封闭式基金以及货币基金净值、信息、以及各种分析工具,并提供收益管理、效率分析等服务。简单点就是:个人投资管理工具+社区。

正式launch是在073月,目前注册用户大约在十多万。财帮子在国内使用rails开发的项目应用中不知道可不可以坐上头把交椅了,javaeye访问量也挺猛,两者有的一拼了。它有三个co-founders: Robin Lu(陆亦斌)孟岩(不是csdn的孟岩,呵呵),赵路。目前好像也还只有他们三个工程师。现在每天pv已达到了百万级,每天的rails requests大概180万左右,每天总共的请求数大概在500万,每秒的请求数峰值达到了430,而rails的每秒峰值请求达到了160

财帮子后台技术主要是用了Ruby On rails, Lighttpd, memcachedMySQL, Linux, Apache 2等技术。最开始launch的时候只有一台自己组装的服务器,配置是1xAMD Opteron 250, 2G Memory, 250G SATA, RAID 1,这个时候数据库和应用放在一起,刚开始做startup基本都是这样,基本配置对准备创业的同志们可以参考一下,偶们一开始用的是Xeon,内存是4G,硬盘160G,买的是dell的机子。他们一开始用的是共享带宽,< 3Mbps

 

      

     他们遇到的第一个challenge是在075月份,问题是因为某些请求很耗时。他们做一下tuning,优化了一下rails cache。第二次挑战078月,第二个挑战是带宽不够用了,直接升级到5Mbps8月份随股市增长网站负载增长也比较快,所以赶快scale up一下,把内存升级到4G,用上了两个AMD2214 2.4G,这下就四核了! Mongrel instance数目也调到了20个。10月份的时候,遇到一个大的挑战,当时股市到6000点了,每日pv也有100万了,这时候大的变化就是将app serverdb server分离开来,用一台单独的机器来承载DB的压力,带宽也加到了10Mbps, Mongrel加到了30Instance

     

同时在Load balancer上他们遇到了一些问题,就是他们的request之间的weight差别可能挺大,所以通过request, traffic或者round-robin等方式来分发任务,导致吞吐率很糟糕,很多request被延迟了。他们最后选用了Lighttpd 1.5,主要也就是结合负载情况来分发请求。他们总结出几个trick

对于rails应用,有时balancer的选择比web server还重要。

禁止 http keep-alive

不用用mongrel来服务js,css等静态文件

根据你的网站业务风格来调整配置。

后台最开始用了BackgroundDRB来分布式计算像基金净值等结果。后来感觉到太慢了,做了一个基于EventMachineFastBackground来作为分布式计算平台。在维护方面主要了Google Analytics, Awstats, Munin, Monit, Crontab等几个工具。

对于财帮子的发展我们拭目以待,通过他们对于rails应用的摸索和经验的分享,我相信rails将来定会大放光彩。衷心希望他们能走得更高更远。

 

 

 

作者:shawnliu
出处:http://liushouzhao.cnblogs.com

 

参考资料:

财帮子

浅谈如何创建Rails应用

财帮子(caibangzi.com)网站架构

Robin blog

 

posted on 2008-11-15 04:03  shawnliu  阅读(3425)  评论(18编辑  收藏  举报