作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我们切换到新的开发服务器并体验到我们的测试套件需要两倍的时间。我们测试了数据库、文件系统等,但这些东西非常快,甚至比以前更快。
所以我们写了一个小的 ruby 基准测试(Fibonacci)并执行了几次(平均值低于):
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 之前的机器:6s
使用 OpenVZ 后的机器:11,5
在两台机器上都装有 Debian Squeeze 并安装了 rvm(-> 已编译)ruby-1.9.3-p194。这些机器上没有高负载,内存也还可以。
或多或少唯一的区别是虚拟化引擎。在生产环境中,我们使用 VMware ESXi。那里的基准测试需要大约 11s。我们用 KVM 测试了另一台服务器,基准测试需要 2,5s。
那么我们可以在虚拟化中做些什么来让我们的 ruby 更快呢?或者您是否有其他想法可能是什么问题?
最佳答案
我刚刚在配备 Debian Squeeze 的 ESXi 5 系统和配备 Ubuntu Precise(服务器)的系统上对其进行了测试。在 Squeeze 上,Ruby-1.9.3-p194 必须编译,而在 Ubuntu 上则不需要。但结果在两个系统上是相同的:11.x 秒。所以我认为我们也可以忽略内核版本并专注于虚拟化层。
关于Ruby 在虚拟机上运行缓慢取决于虚拟化引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13490187/
我是一名优秀的程序员,十分优秀!