瞎扯淡 Ruby on Rails 开发的 API,能支撑多大的日请求量?

atlas · 2017年12月12日 · 最后由 breeze 回复于 2018年03月08日 · 4883 次阅读

Ruby on Rails 开发的 api,能支撑多大的日请求量,我知道不说硬件条件可能被喷,大家用 Ruby on Rails 开发的 api,已经上线的最大支撑了多大的日请求量?

emmmmmm 看 github

对 hging 回复

没有大项目经验,所有想请教一个各位 ruby 的老司机

性能不够,横向扩展就行,主要你有多少量

日均 6 个 ip,一个还是自己公司的。不能再多了。

对 akin520 回复

如果代码质量写的不高,只是扩展硬件,单日千万级别的请求量能支撑吗?

对 flowerwrong 回复

跟我现在一个级别 哈哈哈

对 atlas 回复

很容易

对 teddyinfi 回复

老司机有过实战么

谈日请求量没啥意义吧?如果这一天千万级别请求集中在一秒,那谁也吃不消,如果平均分散的话,那还是很容的

对 atlas 回复

当然有,多点机器少点优化,代码质量一般就多堆点机器,再不行就找高手做做优化重构

对 gihnius 回复

谢谢老哥

这个数据没什么参考意义,Ruby 的性能和其他问题相比还算好的,虽然优化 Ruby 也很累。

对 nouse 回复

只是做个参考,如果有老哥实现过了,说明这条路可行

肯定可行啊

对 atlas 回复

算一下最高 tps

对 gihnius 回复

两台 2Core 4G 比一台 4Core 8G 的性能要好。你可以测试一下。

对 atlas 回复

你不提出自己的需要,如何让大家知道可行呢?

对 gihnius 回复

cpu 使用率这么高?难道就因为 json marshal 和 unmarshal?

对 nouse 回复

其实还没开始做,就是想问下各位老司机能否行得通

API,简单点说就是一个 CGI 而已,你这样讲真的没有任何意义。

具体说来,不仅仅是上面各位提到的要看请求的时间分布,还要看业务场景,比如 IO 密集还是计算密集?相同硬件配置在不同业务场景下的表现可比性就很差了,而你什么也不说。

那我只能说,你看 Github 的请求量,我觉得,一定行的通。

我有 300 台机器,支持每秒 2 万的 rps,这日均得有 17 亿吧?谈日均一点意义都没有。

谢谢解答

对 gihnius 回复

请教一下,你下面 的那个截图测试 1,2,3,4 是用什么工具测的?

对 hanluner 回复

人家已经说了是机器系统里运行 htop 的界面的截图。 没有用过 Linux 发行版吗?去试试吧。 htop 可以说是 top 的一种变种,默认会列出当前运行的系统各个 CPU core 的资源使用比例而不是所有 CPU core 的总资源使用比例。还有很多不同,比如列出同一个进程里的不同线程的信息而不是仅仅列出进程的信息,等等。

分享一下看到的一篇好文,以 puma 為主

Ruby Web 服务器的并发模型与性能

对 hong_xin 回复

谢老哥

对 gihnius 回复

为什么业务系统不用 go 写呢?

如果和 Python 比... Python 处理字符串比 Ruby 慢,然而也能支撑很大规模的网站。而且就算这个性能,主要花钱的机器也不是应用服务器...

31 楼 已删除

Interesting

33 楼 已删除
34 楼 已删除
gihnius 在 服务器负载过高怎样优化? 提及了此话题。 03月08日 09:01

你配置 4 个 worker 加每个 worker 一个线程,给你带来 cpu 使用率下降,request 处理变快了的原因是在:

你的 puma 现在只能同时处理 4 个请求。其它的请求在排队进入 puma。所以实际上并发高的时候只是在 puma 处理请求这块变快了 (同时处理 4 个,与同时处理 4*8 个,显然前者的速度更快),而有更多的请求因为在排队,导致用户从发送请求到响应花了更多的时间。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号