论坛首页 编程语言技术论坛

rails部署服务器的选择

浏览 22325 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-12-07   最后修改:2010-12-07
楼上好多位都没看人家需求就在那里推荐。

Passenger如果支持多种模式或许和raibows非常类似,但我不是很清楚

另外,楼主的问题恐怕是需要利用comet来实现某些操作了

1.9的话,不知道垃圾收集情况如何了?

-------

补充一下,我搜到一篇文章,Pusher & Async With Thin,不知道有没有实现到thin里面,http://macournoyer.com/blog/2009/06/04/pusher-and-async-with-thin/,因为我好久没用thin了,不是很清楚
0 请登录后投票
   发表时间:2010-12-07   最后修改:2010-12-07
没有人考虑过nginx + unicorn吗?
unicorn基于消息机制,发送USR2消息可以让unicorn重启,但是用户感觉不到。因为重启的时候是等待完成当前请求再重启的。
我测试过,unicorn的性能基本和passenger持平
0 请登录后投票
   发表时间:2010-12-07  
t0uch 写道
没有人考虑过nginx + unicorn吗?
unicorn基于消息机制,发送USR2消息可以让unicorn重启,但是用户感觉不到。因为重启的时候是等待完成当前请求再重启的。
我测试过,unicorn的性能基本和passenger持平


普通的应用我基本上选Unicorn,Unicorn相当于"ruby 的 nginx",非常出色。rainbows是在Unicorn基础上提供各种网络通讯模式的服务器。

Thin和Unicorn的相比,应该基本上没有什么优势了。
0 请登录后投票
   发表时间:2010-12-07  
potian 写道
楼上好多位都没看人家需求就在那里推荐。

Passenger如果支持多种模式或许和raibows非常类似,但我不是很清楚

另外,楼主的问题恐怕是需要利用comet来实现某些操作了

1.9的话,不知道垃圾收集情况如何了?

-------

补充一下,我搜到一篇文章,Pusher & Async With Thin,不知道有没有实现到thin里面,http://macournoyer.com/blog/2009/06/04/pusher-and-async-with-thin/,因为我好久没用thin了,不是很清楚


应该不需要comet保持client与server端的http链接吧?虽然系统有一些较长的请求,但单一用户和服务器连接的时间却未必很长(有可能用几分钟就下线了),而且请求都是客户段发起的,不需要server push,这样情况用comet会不会很浪费资源?
0 请登录后投票
   发表时间:2010-12-07   最后修改:2010-12-07
我的帖子居然上首页了。
多谢大家的回复啊 ,不过现在更是眼花缭乱了,需要时间消化一下。
0 请登录后投票
   发表时间:2010-12-07  
    对于并发的东西,内存免不了,不过抛开性能不讲,对长时间的响应,对用户体验上应该很不如意吧,我觉得还是在数据库这端做些处理可能更好,比如说每次需要查询的东西可以用后台进程定期注册之类的,每次请求都几秒时间,说实在的,自己都等的不耐烦
    用了rails一段时间了,没有真正上线过并发项目,用loadrunner并发到100测试过,觉得还吃得消的。。不是太大的并发数。
0 请登录后投票
   发表时间:2010-12-07  
jiachengxi38 写道
    对于并发的东西,内存免不了,不过抛开性能不讲,对长时间的响应,对用户体验上应该很不如意吧,我觉得还是在数据库这端做些处理可能更好,比如说每次需要查询的东西可以用后台进程定期注册之类的,每次请求都几秒时间,说实在的,自己都等的不耐烦
    用了rails一段时间了,没有真正上线过并发项目,用loadrunner并发到100测试过,觉得还吃得消的。。不是太大的并发数。

网站对响应时间比较严格,但企业系统处理一个业务等上几秒钟用户可以接受的.当然db要尽可能的优化啦。

有个问题不太明白,像mongrel或者fastcgi的每个进程,是不是都会加载整个rails应用?如果启动20个进程,每个进程消耗50mb内存,总的内存就是1GB?
0 请登录后投票
   发表时间:2010-12-07   最后修改:2010-12-07
javarubypython 写道
jiachengxi38 写道
    对于并发的东西,内存免不了,不过抛开性能不讲,对长时间的响应,对用户体验上应该很不如意吧,我觉得还是在数据库这端做些处理可能更好,比如说每次需要查询的东西可以用后台进程定期注册之类的,每次请求都几秒时间,说实在的,自己都等的不耐烦
    用了rails一段时间了,没有真正上线过并发项目,用loadrunner并发到100测试过,觉得还吃得消的。。不是太大的并发数。

网站对响应时间比较严格,但企业系统处理一个业务等上几秒钟用户可以接受的.当然db要尽可能的优化啦。

有个问题不太明白,像mongrel或者fastcgi的每个进程,是不是都会加载整个rails应用?如果启动20个进程,每个进程消耗50mb内存,总的内存就是1GB?


这是没有办法的事情,所以unicorn/rainbows的方式就非常节约内存了

但是一个ERP系统一般来说不能有这么高的并发量,不会有一大群人有事没事去点击一点订单、出库单或者什么业务数据去看一下的,所以你的进程数根本不需要20个,4-5个就搞定了。

用最简单的指标来说,一个ERP系统,如果工作时间内每秒钟要处理200次请求的话,那这个公司的规模可以说是大得无以复加了。这个时候你用几十台机器去搞定也没问题呀。

-----

回头看看你的应用,如果你不采用轮询或者comet模式,那么如果同时有几个长时间的十几秒甚至几十秒的查询正在进行,你的进程数要求确实比较高了。我还是建议你改进你的请求、响应模式而不是增加进程数。


0 请登录后投票
   发表时间:2010-12-08  
   我还是建议你改进你的请求、响应模式而不是增加进程数。。LS的想法还是比较实际的,像这样关系到应用的问题,最好不要在mongrel或者部署上做文章,好好校验一下逻辑和代码,或者和公司里面对性能方面有经验的人多沟通沟通。对长时间响应的东西可以分布设计,或许可以用多次请求或者分布展现的方式延缓一下
0 请登录后投票
   发表时间:2010-12-09  
quix 写道
我觉得passenger+ree的模式很不错,而且部署配置非常简单,最为节省内存,有很多种请求分配模式,应该能符合你的需要,


我是第一次写rails程序,马上到部署阶段了,也倾向于passanger+ree,想请问一下,一般是需要多少内存,我使用的是vps对内存比较在意
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics