部署 Puma、Unicorn 吞吐量在实际应用中如何?

cassiuschen · 2014年01月19日 · 最后由 cassiuschen 回复于 2014年01月19日 · 4456 次阅读

看好像最早都用 passager,后来 thin 和 rainbow 逐渐多了起来,再后来是 unicorn 和 puma………

刚做了个小测试。unicorn 和 puma 分别以生产模式跑同一个程序,另一台服务器简单的用

1000000.times {|i| `curl 页面地址`; puts i }

不断请求页面。服务端 htop 实时监控,munin 和 mrtg 长时间检测数据。

puma 是 4:16 的集群模式跑的,unicorn 是 3 个 workers 跑的。 从日志看每秒服务器收到平均 32 个请求。

结果 puma 测试现在跑到 27w 次请求了…内存比低负载的时候只涨了 400mb,而 unicion 跑了 800 次请求就不敢跑了,每秒 10mb 内存消耗往上涨,涨到内存满了开始刷 swap 了速度还不减,停止请求后内存使用小降了一点就没变化了………

用 ab 进行测试,并发 1000、1w 次为一轮,Unicorn 从第三轮开始丢包,第六轮开始 ssh 访问就断了……两分钟后 dns 提升宕机,停止请求后监控进程也全线崩溃…因为内存超了…… Puma 从在七轮开始丢包,第十三轮开始正常。1000 并发请求了几个小时,内存增加了不到 300mb,服务器各项都稳定,算是扛住了……

改天试试看 thin 跑四个 socket 和 puma 单跑四个 sigle 模式交给 nginx 负载均衡会怎么样……

测吞吐量用这个

ab -c 并发数 -n 请求次数 地址

#1 楼 @Rei 如果两三个哥们,在各自的服务器上用 ab 测我们的服务器。并发搞大一些会不会把我服务器搞死?

#2 楼 @Victor 你可以配置下 fail2ban 禁止这样搞……

#1 楼 @Rei !!好的这就去玩坏服务器看看~

#2 楼 @Victor 像 3 楼说的,用防火墙屏蔽掉访问太频繁的请求。

#1 楼 @Rei 看了看 puma 吞吐还是优于 unicorn

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