2KB项目,专业的源码交易网站 帮助 收藏 每日签到

物理机和虚拟机的 Web 应用性能比较

  • 时间:2019-01-23 18:41 编辑:2KB 来源:2KB.COM 阅读:566
  • 扫一扫,手机访问
  • 分享
摘要:
VirtualBox VMware Fusion 英文原文:Web development performance inside and outside a VM

概述

在虚拟机而不是你的主机中进行Web开发可以提供很多好处:开发环境很容易分发,可以密切配合生产,并且可以随意重新创建。 Vagrant(赵亮注:一个基于Ruby的工具,用于创建和部署虚拟化开发环境)已经解决了无缝使用虚拟机的许多头痛问题,如网络和共享文件系统。然而,许多潜在的用户担心性能会影响在虚拟机中的开发。

我决定为一些典型任务量化比较性能差异,比较对象是我“本地的”的OS X机器作为主机,与 Vagrant 搭配 VirtualBox提供器 , 和 Vagrant 搭配 在 VMware Fusion(付费)之上的 Fusion 提供器(付费) 。

测试设置

我使用我的相对微不足道的2012 MacBook Air -它有一个酷睿i5芯片,一个SSD的8G内存。我的目标是衡量在典型的web开发任务中这些机器配置之间的性能差异,所以不要拿这些数字作为绝对依据。

我选择在Discourse 论坛应用程序上做我的测量。它是用Ruby on Rails写的,在规模和复杂性上与大多数公司的应用程序相比有一个相当大的测试套件。同时,它是免费和开放源码的,所以请你自己也尝试实验一下这些结果!

对于VirtualBox和Fusion,我都分配了2G的RAM给虚拟客户机。我试着只分配1G来再次使用这些测试,但并没有造成明显的差别。客户机运行一个典型的服务集:redis、postgres、nginx。

VirtualBox也测试了用NFS代替共享文件夹,这里列出了使用它的速度效益:http://docs-v1.vagrantup.com/v1/docs/nfs.html。然而,如果你的主机不支持NFS,你可能无法使用它。

应用程序启动时间

我通过下面的脚本来测量应用程序启动的时间:

time `bundle exec script/rails runner "0"` 

应用程序的启动时间对于开发人员来说是一个严重的摩擦根源,尤其是如果你做“测试驱动”的开发(你应该会的!)。请注意我用Ruby 2.0.0,它比1.9.3显著提高了所需方法的性能。10秒是一个等待应用程序开始的长得见鬼的时间,如果你有兴趣改善这个,可以看看nailgun (JRuby),sporkzeus

我在每台机器上运行了三次脚本,并记录下挂钟的时间:

在主机上的结果:
real	0m9.173s
real	0m8.739s
real	0m8.823s
用 VirtualBox w/ 共享文件夹 的结果:
real	0m21.764s
real	0m19.342s
real	0m20.674s
用 VirtualBox w/ NFS 的结果:
real	0m9.500s
real	0m8.669s
real	0m8.625s
用 VMware Fusion 的结果:
real	0m10.587s
real	0m10.095s
real	0m10.445s

运行总体测试套件的时间

我测量的时间是通过下面简单的调用来运行整个Discourse测试套件所花费的时间:

bundle exec rake spec

这个Discourse 套件共有 2672 个单独测试用例。

在主机上的结果:
Finished in 4 minutes 19.64 seconds
Finished in 3 minutes 52.26 seconds
Finished in 4 minutes 1.03 seconds
VirtualBox w/ 共享文件夹 的结果:
Finished in 5 minutes 31.31 seconds
Finished in 5 minutes 12.14 seconds
Finished in 5 minutes 32.54 seconds
VirtualBox w/ NFS 的结果:
Finished in 4 minutes 42.27 seconds
Finished in 4 minutes 16.27 seconds
Finished in 4 minutes 43.79 seconds
VMware Fusion 的结果:
Finished in 4 minutes 16.68 seconds
Finished in 4 minutes 23.95 seconds
Finished in 4 minutes 22.87 seconds

因此…

VMware Fusion 和 VirtualBox+NFS ,比 VirtualBox+共享文件夹 快得多, 仅略落后于使用主机。

在这种情况下使用这两种虚拟机解决方案都有超过使用主机的优势,因为当你不进行开发时可以挂起虚拟机来释放其所有资源!

请通过hello@stackmachine.com 让我们知道你自己关于这方面的经历!

附录

我更多地查看那些例程的I/O性能,比如数据库的访问,这些会影响的集成测试速度。postgres 附带了 pgbench ,它是一个虽然综合但简单的测量postgresql性能的方法。在这两种情况下,postgres的配置默认都是withshared_buffersset = 24 mb 和 autovacuum = off。我使用的脚本如下:

createdb pgbench
pgbench -i -s 10 pgbench # use scalefactor = 10 pgbench -T 600 pgbench # collect results over 10 minutes 
在主机上的结果:
transaction type: TPC-B (sort of) scaling factor: 10
query mode: simple
number of clients: 1
number of threads: 1
duration: 600 s
number of transactions actually processed: 673985 tps = 1123.322847 (including connections establishing) tps = 1123.328761 (excluding connections establishing) 
用VirtualBox的结果:
number of transactions actually processed: 421642  tps = 702.709747 (including connections establishing) tps = 702.713031 (excluding connections establishing) 
用VMware Fusion的结果:
number of transactions actually processed: 558332 tps = 930.552663 (including connections establishing) tps = 930.557223 (excluding connections establishing) 

所以在原始数据库性能上面,VMWare大约慢于主机20%,VirtualBox(比VMWare)还要慢20%——虽然这些差异没有关联到以上情况的诸多现实世界行为。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部