puma vs passenger vs rainbows! vs unicorn vs thin 适用场景 及 performance

ruby的几个web server,按照开发活跃度、并发方案及要点、适用场景等分析puma vs passenger vs rainbows! vs unicorn vs thin。

1. thin: 长久未更新,

2. unicorn: 未测试。

3. opensource passenger or enterprise passenger:  open source版只支持多进程*1线程,enterprise版收费,但支持多进程*多线程。性能不如其宣传的好,甚至比unicorn 和 puma差很多。

4. rainbows!: 支持cluster模式,比puma的mem使用率稍高,

5. puma: 支持cluster模式,支持多进程*多线程,但是我测试后发现,其多线程模型在原生ruby上对性能提升微乎其微。在jruby上内存消耗非常大,在robinus上则不稳定,折腾了很长时间。

注意rails引用在采用多线程的web server方案时,需要注意其本身的thread.safe问题,请阅读:参考链接5.

测试环境是:bitnami_redmine 2.3.1版  ubuntu 12.04 64bit

---待完善。

1. robin的puma vs rainbows介绍: https://ruby-china.org/topics/10832

2. rainbows官网:http://rainbows.bogomips.org/

3. puma : https://github.com/puma/puma/

4. thin : https://github.com/macournoyer/thin

5. rails 4 以下的 thread.safe 问题:https://bibwild.wordpress.com/2013/02/18/rails-and-concurrent-request-handling/

6. unicorn官网:  http://unicorn.bogomips.org/

时间: 2024-10-10 09:08:51

puma vs passenger vs rainbows! vs unicorn vs thin 适用场景 及 performance的相关文章

redmine在linux上的mysql性能优化方法与问题排查方案

iredmine的linux服务器mysql性能优化方法与问题排查方案 问题定位: 客户端工具: 1. 浏览器inspect-tool的network timing工具分析 2. 浏览器查看 response header, 分析http server 与 web server.       服务器工具:   0. nmon 查看各类系统负载, rrdtool 查看网络状况.   1. uptime看cpu负载;    free看内存;  mem ; cat /proc/meminfo以及  i

ruby基础教程之rails性能优化

在ruby on rails(http://www.maiziedu.com/course/ruby-px/)中,很多rails程序员会经常忘记考虑性能问题,这会导致网站速度下降,内存占用剧增,Apache频频重启,所以这时就需要进行rails性能优化.具体的优化内容如下: 1,使用Unicorn或者Thin服务器替代默认的webrick. 2,静态资源压缩合并,放到云存储上. 3,同时可以使用rails的Turbolinks,使用js替换title和body,但也带来了js逻辑的变化. 4,A

Passenger简介

https://www.phusionpassenger.com/docs/tutorials/what_is_passenger/ What is Passenger? 一个开源的web程序服务.它除了HTTP请求,管理进程和资源,能够administration, monitoring,并进行问题诊断. 容易使用,让产品的部署变得容易和scalable( p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Arial; color: #3

Capistrano + Puma + Apache

系统中的80端口已经因为使用lampp被占用,故不能再次使用nginx来做解析: deploy/staging server "yan.com", user: "root", roles: %w{app db web}, my_property: :my_value set :branch, 'master' set :rails_env, 'production' set :deploy_to, "/opt/lampp/htdocs/#{ fetch(:

nginx unicorn 来运行rails

一.安装nginx sudo apt-get install nginx 安装完成后查看一下:nginx -v 说明安装成功. ubuntu系统里的安装目录是在/etc/nginx/下,启动程序文件在/usr/sbin/nginx 二.新建项目 rails new app --skip-bundle 完成后修改Gemfile文件:vim Gemfile 把source 修改成taobao或者ruby-china的源. 在这个文件里加入:gem 'unicorn' 然后运行:bundle inst

rails+apache2+passenger+ssl实现https双向认证通信

rails+apache2+passenger+ssl实现https双向认证通信 环境: 系统:Centos7 服务器:apache(httpd) 2.4.6 制作工具:openssl 1.0.1 Rails版本 :4.1.6 准备工作: 安装apache和openssl #yum install  httpd  httpd-devel httpd-tools #yum install openssl 安张mod_ssl #yum install mod_ssl 一.创建根证书 1创建CA私钥

实战Puppet 集中配置管理系统(3)——Puppet dashboard与nginx+passenger安装配置

     本次实验内容紧接前两次实验,第一节内容主要介绍PUPPET的安装认证与资源定义,第二节主要写apache与nginx模块的应用,本次介绍Puppet dashboard与nginx+passenger 的安装,Puppet dashboard 是用以 web 方式管理 puppet.puppet 默认使用基于 Ruby 的WEBRickHTTP 来处理 HTTPS 请求,单个服务器使用Apache/Nginx+Passenger 替换掉 WEBRickHTTP,Passenger 是用

Capistrano+Nginx+Unicorn 自动部署Rails

配置你的服务器 你需要在你的服务器上安装Ruby的环境,你可以使用RVM或者是rbenv. 上传到github 这步需要将你的应用上传到github,在你的github上创建新的repository,然后在你本机代码位置执行下面的命令,初始化git仓库. git init git add . git commit -m"<message>" git remote add origin [email protected]:<username>/<git re

复现 360 Unicorn Team 黑科技之 HackNFC

看了2条360 Unicorn Team的微博后,感觉蛮有趣的,打算复现一下 谷歌了下相关资料,在HACKADAY找到了介绍文章 还有2篇北邮工学硕士的论文,欢迎有兴趣的朋友和我一起交流~ 联系方式在置顶文里面~