`
CharlesCui
  • 浏览: 427714 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Unicorn和Passenger性能测试对比

阅读更多

测试工具:ab

 

测试用例:

1.短连接

2.长连接

 

APP:

class App < Sinatra::Application

        get '/' do
            "HELLO "+Time.now.to_s
        end 

        get '/sleep' do
            sleep 5
            "HELLO "+Time.now.to_s
        end
end

run App.new

 

测试环境:

Unicorn:

100进程,

写道
[zheng.cuizh@localhost tbMemberServer]$ ps axf|grep unicorn -c
102
 

8080端口

Passenger:

基于nginx

100进程,

写道
[zheng.cuizh@localhost tbMemberServer]$ ps axf|grep nginx -c
102
 

8081端口

 

测试结果:

场景1:

ab -c 100 -n 10000 10.1.166.138:8080/ => rps:1634

ab -c 100 -n 10000 10.1.166.138:8081/ => rps:1318

场景2:

ab -c 100 -n 100 10.1.166.138:8080/sleep?vcatwbwrge => rps:19.65

ab -c 100 -n 100 10.1.166.138:8081/sleep?v34rnjnf9 => rps:1.17

 

结果比较,unicorn比passenger性能看似好很多,但我不清楚如何关闭缓存,我对这两个东西的配置还不是很熟悉,所以我猜测在测试过程中可能会有读取缓存页的情况,这会使得测试结果看起来速度更快。

 

不过passenger基于nginx,所以支持的并发访问数要比unicorn高,比如测试1000并发的第二个场景时,unicorn出现socket closed by peer的提示,然后ab终止,passenger没出现这个问题。实际生产环境unicorn不会出现在部署的最前端,也会用nginx作一层代理。

 

不管性能哪个更好,希望ruby的库们越来越优秀,越来越丰富。

 

ps:谁告诉我一下这两个server如何关闭cache?比如我用ab的话不能对每次url请求都生成一个随机数,这时候就需要关闭server的缓存。

分享到:
评论
13 楼 zires 2011-05-07  
night_stalker 写道
unicorn 也很好维护啊,通过 signal 控制,信号和 nginx 很相似,发个信号就能热部署,热部署的时候没有请求 queue 延迟的问题 (用posix函数实现的load balancing就比你们自己搞的global queue好用⋯⋯)

unicorn 的进程维护应该比较优才对。可以设置请求后才进行 gc(tps会下降但是用户体验效果很好),可以自动杀超时进程,可以动态增加减少 worker ⋯⋯


热部署很好用
我在生产环境中也使用unicorn + nginx
关于维护和部署方面是用capistrano来管理unicorn也很方便啊
12 楼 CharlesCui 2011-05-06  
kiol 写道
Unicorn是直接部署到前端吗?
还是前面再加nginx做反向代理?


生产环境上要加nginx,
测试开发环境,或者生产环境只有一台server的话,我就直接用unicorn了,

别的同学怎么用的?
11 楼 night_stalker 2011-05-05  
unicorn还有个好处是100% ruby,实现比passenger简单

一般前面再加nginx(unicorn不是设计来处理静态文件的,用unix socket或者端口代理都可以, unicorn源码中带nginx配置的example : https://github.com/defunkt/unicorn/blob/master/examples/nginx.conf),有特殊需求不加也可以⋯⋯
10 楼 kiol 2011-05-05  
Unicorn是直接部署到前端吗?
还是前面再加nginx做反向代理?
9 楼 mamba 2011-05-05  
t0uch 写道
unicorn相当不错。
使用passenger要编译nginx这一点很不爽。
unicorn部署可以让用户感觉不到延迟,这一点很牛,signal控制起来也很方便。


强烈同意, 我从 passenger 切换到 unicorn 的唯一原因就是 passenger 需要编译 nginx
8 楼 t0uch 2011-05-05  
易卡螺丝君 写道
Passenger+Nginx
在性能方面差据不到5%
维护和部署方面有30%以上优势 你说选谁?

这里的所谓5%和30%从哪里来的呢?还是你随便说说的?
7 楼 t0uch 2011-05-05  
unicorn相当不错。
使用passenger要编译nginx这一点很不爽。
unicorn部署可以让用户感觉不到延迟,这一点很牛,signal控制起来也很方便。
6 楼 night_stalker 2011-05-04  
unicorn 也很好维护啊,通过 signal 控制,信号和 nginx 很相似,发个信号就能热部署,热部署的时候没有请求 queue 延迟的问题 (用posix函数实现的load balancing就比你们自己搞的global queue好用⋯⋯)

unicorn 的进程维护应该比较优才对。可以设置请求后才进行 gc(tps会下降但是用户体验效果很好),可以自动杀超时进程,可以动态增加减少 worker ⋯⋯
5 楼 CharlesCui 2011-05-04  
Hooopo 写道
CharlesCui 写道
易卡螺丝君 写道
Passenger+Nginx
在性能方面差据不到5%
维护和部署方面有30%以上优势 你说选谁?


什么5%?
维护和部署方面的30%这个数据是谁测试出来了?

不理解。


是啊,这个怎么测的


虎扑现在混哪里的?记得前震子你还在东北呢,怎么现在到北京了。
4 楼 Hooopo 2011-05-04  
CharlesCui 写道
易卡螺丝君 写道
Passenger+Nginx
在性能方面差据不到5%
维护和部署方面有30%以上优势 你说选谁?


什么5%?
维护和部署方面的30%这个数据是谁测试出来了?

不理解。


是啊,这个怎么测的
3 楼 CharlesCui 2011-05-04  
易卡螺丝君 写道
Passenger+Nginx
在性能方面差据不到5%
维护和部署方面有30%以上优势 你说选谁?


什么5%?
维护和部署方面的30%这个数据是谁测试出来了?

不理解。
2 楼 易卡螺丝君 2011-05-04  
Passenger+Nginx
在性能方面差据不到5%
维护和部署方面有30%以上优势 你说选谁?
1 楼 QuakeWang 2011-05-03  
我以前用 Autobench 测试过Passenger + Nginx, Thin + Nginx 和 Fastcgi + Lighttpd,我测试的是每秒30个请求开始,然后最高到180个请求,测试环境Ruby 1.9.2+Ubuntu Server。

Fastcgi的响应时间稍微比Passenger和Thin要快一点点,可以说3者在性能上的差异极小,但是在内存使用上Thin最少,而Passenger胜在部署和维护方便。 综合考虑我推荐Passenger+Nginx。

相关推荐

    利用Unicorn和Nginx部署Redmine

    总结来说,这个知识点主要涵盖了使用Unicorn和Nginx部署Redmine的流程,包括环境配置、Redmine安装、Unicorn和Nginx的配置及启动,以及最后的测试和优化。通过这种方式部署,可以确保Redmine在服务器上的稳定运行,...

    APT威胁检测-unicorn数据集

    APT威胁检测-unicorn数据集

    nginx 1.17.9.1 Unicorn.zip

    总结来说,这个压缩包提供了一套完整的Nginx 1.17.9.1与Unicorn在Windows上的部署解决方案,包括服务器二进制文件、配置示例、性能优化建议以及必要的文档和依赖库。对于开发者或运维人员来说,这是一份非常实用的...

    Unicorn Admin前端框架

    为了便于开发和调试,Unicorn Admin提供了详细的文档,包括API参考、示例代码和常见问题解答。这些资源可以帮助开发者迅速上手,节省开发时间。同时,源码组织清晰,遵循模块化原则,方便进行二次开发和维护。 总的...

    Unicorn

    "Unicorn"这一主题在IT领域中可能是指一种特定的设计元素、图标或者字体风格,尤其考虑到标签为“字体”。...在实际应用中,Unicorn.ttf和unicorn1.gif可以协同工作,为用户带来一致且引人注目的视觉体验。

    cpp-基于Unicorn和LibFuzzer的模拟执行fuzzing

    在IT行业中,Fuzzing是一种广泛使用的软件测试技术,它通过自动输入大量随机数据到程序中来检测潜在的错误和安全漏洞。在这个场景下,我们关注的是“cpp-基于Unicorn和LibFuzzer的模拟执行fuzzing”。这涉及到两个...

    c_cmake_unicorn_arm_demo.zip

    总的来说,这个项目提供了一个使用 CMake 和 Unicorn 模拟 ARM 代码的示例,对于学习如何在非 ARM 平台上运行和测试 ARM 代码的开发者来说,是一个宝贵的资源。通过阅读博客文章和研究项目源码,你可以深入了解如何...

    cmake unicorn c arm so demo003.zip

    这在调试、性能分析或自动化测试中非常有用。 **libdemo002.so**: `libdemo002.so` 是一个动态链接库,通常包含了供其他程序调用的函数。在 `main.c` 文件中,开发者可能会使用 `dlopen()`、`dlsym()` 等函数来加载...

    08-[论文分享]-NDSS2020-UNICORN Runtime Provenance-Based Detector for

    在实验部分,UNICORN与其他检测系统(如StreamSpot)进行了对比,并在DARPA TC数据集以及模拟的供应链攻击场景中展示了其优越性能。实验结果表明,UNICORN不仅能够有效检测APT攻击,而且在处理速度和资源消耗方面也...

    基于Unicorn仿真PE模拟_unicorn_peEmu.zip

    基于Unicorn仿真PE模拟_unicorn_peEmu

    unicorn Bootstrap 后台管理界面

    在"unicorn"中,Bootstrap被充分利用,构建了一套适应各种屏幕尺寸的后台布局系统,确保在手机、平板和桌面电脑等不同设备上都能提供一致的用户体验。 HTML5作为最新的超文本标记语言标准,引入了许多新特性,如...

    Unicorn - Admin Template

    Unicorn - Admin Template 是一款支持视网膜屏幕、完全响应式布局,可用于任何应用程序的管理模板。该面板适应任何宽度的设备。无论是智能手机、平板电脑或桌面浏览器都能完美适应。最新版本基于 Bootstrap 3 构建。

    MSF及Unicorn的介绍及用法-漏洞银行大咖面对面7-hfuuss

    它们不仅能够帮助安全专业人员进行漏洞检测和渗透测试,还能让攻击者利用这些工具对目标系统实施攻击。因此,网络安全工作者需要深入研究这些工具的使用方法,并且不断提高自身的安全防护意识和能力,以防止被攻击。

    unicorn-master_ddos_ThroughtheWindow_

    Magic Unicorn is a simple tool for using a PowerShell downgrade attack and inject shellcode straight into memory. Based on Matthew Graeber's powershell attacks and the powershell bypass technique ...

    unicorn-admin 后台全站模板

    "unicorn-admin 后台全站模板"是一款源自wrapbootstrap的精美后台管理界面模板。这款模板以其优雅的设计和高效的用户体验在IT行业中受到了广泛的关注。Wrapbootstrap是一个知名的平台,它提供了大量高质量的...

    前端项目-unicorn.js.zip

    前端项目-unicorn.js,Unicorn CPU emulator framework port for JavaScript

    Python库 | unicorn-1.0.2rc2-py2.py3-none-manylinux1_i686.whl

    对于开发者而言,这意味着可以更快地集成和测试库,尤其是在跨平台或多种环境的项目中。 "unicorn"库本身可能提供了特定的功能,但没有具体的描述,我们需要查阅其官方文档或GitHub页面来获取更多信息。通常,...

    Bootstrap Unicorn Admin

    Unicorn - Admin Template 是一款支持视网膜屏幕、完全响应式布局,可用于任何应用程序的管理模板。该面板适应任何宽度的设备。无论是智能手机、平板电脑或桌面浏览器都能完美适应。最新版本基于 Bootstrap 3 构建。...

    nginx 1.17.10.1 Unicorn.zip

    【Nginx 1.17.10.1 Unicorn.zip】是一个针对Windows服务器的Nginx配置包,其中包含了Nginx服务器的核心组件以及一些附加功能。Nginx是一款高性能、轻量级的Web服务器/反向代理服务器,以其高并发处理能力、低内存...

Global site tag (gtag.js) - Google Analytics