我们切换到新的开发服务器,并体验到我们的测试套件需要两倍的时间。我们测试了数据库,文件系统等,但这些东西速度相当快,甚至比以前更快。与OpenVZ的6S后根据虚拟化引擎,Ruby在虚拟机上运行缓慢
机:11,5
所以我们写了一个小红宝石基准测试(斐波那契),并执行了几次(平均低于):
time_start = Time.now
f = lambda { |x| x < 2 ? x : f.call(x-1) + f.call(x-2) }
f.call(35)
time = Time.now - time_start
puts "#{time.round(4)}s needed"
机之前,XEN
在两台机器上是Debian的挤压安装RVM( - >编译)红宝石1.9.3-P194。这些机器没有高负载,内存也可以。
或多或少唯一的区别是虚拟化引擎。在生产中我们使用VMware ESXi。那里的基准需要大约11s。 我们用KVM测试了另一台服务器,那里的基准需要2,5s。
- 机与XEN:6S
- 机与OpenVZ的:11,5s
- 机与VMware ESXi的:11S
- 机与KVM:2,5s
那么我们可以通过虚拟化改变我们的红宝石速度?或者你有另一个想法是什么问题?
野趣的问题,但在我看来,这是很难在不同的虚拟化技术来比较的基准! – Robin
@Sam:不幸的是,我们没有其他想法可以解决什么问题...... – MMore
我会在所有系统上运行非Ruby的CPU基准测试,以确保问题与Ruby相关。所有机器都运行64位吗? – claasz