分享 为什么说 Raptor 比 Unicorn 快 4 倍,比 Puma 快 2 倍

lgn21st · 2014年11月11日 · 最后由 ohcoder 回复于 2016年06月02日 · 5764 次阅读

http://www.rubyraptor.org/how-we-made-raptor-up-to-4x-faster-than-unicorn-and-up-to-2x-faster-than-puma-torquebox/

how we’ve made Raptor fast. The performance is mostly thanks to our HTTP server implementation. We’ve written a custom, embedded HTTP server in C++, completely optimized for performance.

非常系统的一篇文章,详细解释了 Rails 的 web server 工作原理。 从文章上看,算是针对 Rails server 的各种性能优化加强版,不知道实际用下来效果如何? 有个问题要问 Passenger,到底 Rails server 哪家强?

根据我的理解,Raptor 似乎会把 Nginx 反向代理的功能集成起来。 其实在我实际使用的过程中,Unicorn 搭配 Nginx 会快很多(直观感受,没有实际测过)

看到后半看不懂了,等 Passenger 的大大发文分析。

@Victor 是它,不过代码 还木有 放出来,官方说 这个月 25 号出来 这不是 搞饥饿销售嘛....

Public beta release: 25th November 2014

我也在关注 Raptor。文章里面说的道理很好,但是很多代码,应该不是 Ruby 写的。 Raptor 不是专供 Rails,而是 Ruby App Server,它也是基于 Rack。 Ruby 在 HTTP Server 方面的瓶颈,主要在 Rack 的架构瓶颈,以及 MRI Ruby 的线程瓶颈,还有就是 GC 的低效。 如果 Raptor 没在 Rack 里面做手术,没用线程支持更好的 JRuby 之类去跑,估计很难有革命性的提升。 只是针对一些特定场景的 benchmark 结果好看罢了。

文章里面介绍 Raptor 的路线,估计会和 Sidekiq 一样,核心代码开源,免费使用。也可以花钱购买商业版,有更多功能实现,那部分代码不开源。

表示单核 1G 内存,怎么破?

期望他真的不是吹的!要不挂得很快!

等有真实生产环境对比测试结果再吹不迟

#4 楼 @meeasyhappy 还真不是它,你搞错了。

11 楼 已删除

#10 楼 @nightire 那是什么,能给个链接么

#13 楼 @Peter PHP 是世界上最好的编程语言!

#12 楼 @meeasyhappy 真实的链接我也不知道,人都说了 25 号才公布,这会儿估计还是一个 Private Repo 呢。只不过你说的那个我太了解了,肯定不是一个 Web Server,它是 Gary 大神捣鼓的一个玩具,是一个 MVC 框架。

#14 楼 @lgn21st 东西可以乱吃,话可不能乱讲啊。我就知道你对 Ruby 不是真心的,你心里还想着那个 PHP,感情的事是不能强求的,呐,不要说我没有提醒你,你有没有考虑过 Ruby 的感受?呐,做人呢,最重要就是要开心,但发生这种身在曹营心在汉的事呢,大家都不想的。既然发生了,我劝你最好一个人静一静。要珍惜眼前人啊~

#17 楼 @Peter 谢谢,我现在心情好多了......

#18 楼 @lgn21st #17 楼 @Peter

祝你们幸福~~~真是个好东西

@Peter 还没有说“要不要我煮碗面给你吃”

早上在地铁上,认真仔细的看完文章。 Raptor 是一个 MultiProcess+MultiThreaded + Evented I/O 模式,集合了之前的三中 app Server 的优势(但是呵呵 MultiThreaded 开源版本是没有的 需要 paid Dollar 才能用) ,尤其是内置的 http parser 做了很多的优化,以及采用了 Zero-Copy 的方式节省多进程之间共享内存的拷贝。Zero-copy 的架构采用了 mbufs and scatter-gather I/O

文法和 Phusion Passenger 的 doc 很像,估计是他们出的

The builtin HTTP server is about twice as fast as Nginx. This is because it’s completely designed for the workloads that Raptor handles. In return, it has fewer features than Nginx. For example, our builtin HTTP server doesn’t handle static file serving at all, nor gzip compression. It trades features for performance. Having said this, you can still enjoy all the Nginx features by proxying Raptor behind Nginx, or by direct Nginx integration. This is fully supported and it’s something that we will elaborate on in a future blog post.

gzip 都没有这种性能提高有意义吗?

@tuliang 既然都不 handle static file 了,要 gzip 干嘛呢?肯定还要挂一个 nginx 的啊

原来就是 passenger 改个名字了

通过这篇文章,学了好多 server 知识。

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