为Ruby社区运行测试.
在我们的工作服务器上,我们有最多(最多)N个运行N测试的并行进程
N VM中的套件并行,即一个工作进程在一个中运行一个测试套件
VM一次,但其中N个并发运行.
现在,只要很多工人实际上并行执行构建了
与非常时相比,每个版本的性能都会显着下降
相同的构建将在一个工作程序中运行(并且没有其他任何运行
平行).
这是一个例子:
这个“构建矩阵”由20个单独的构建组成:
http://staging.travis-ci.org/#!/svenfuchs/rails/builds/1906
在运行时,有10名工人正在运行,所以这个构建
最初是在10个工人(和VM)中执行10个单独的构建
平行.这个版本就是其中之一,它需要大约2个小时才能完成:
[请参阅上面页面列表中的最后一个链接,我只能发布2个网址]
当没有其他版本时,完全相同的构建只需要约20分钟
并行执行.这是一个例子:
http://staging.travis-ci.org/#!/svenfuchs/rails/builds/1927
这种性能下降显然是我们需要解决的问题
我们不确定在哪里看.
测试套件基本上执行可能会弹出并生成的Ruby进程
其他几个Ruby进程,每个执行单元在代码库上进行测试.一些
他们打了MySQL,Sqlite3和Postgres等数据库,但我们也注意到了
同样的降级,测试根本没有打到任何数据库.
托管这些进程和VM的工作服务器如下所示:
> Linux 2.6.32-31-server#61-Ubuntu SMP Fri Apr 8 19:44:42 UTC 2011 x86_64 GNU / Linux
> 12x(Hexacore)Intel(R)Core(TM)i7 CPU 950 @ 3.07GHz
> 12 GB内存
每个VM:
> Linux lucid32 2.6.32-28-generic#55-Ubuntu SMP Mon Jan 10 21:21:01
UTC 2011 i686 GNU / Linux
> 1x Intel(R)Core(TM)i7 CPU 950 @ 3.07GHz
> 1 GB内存
有关如何对此进行排序或可能只是更好地识别根问题的任何提示
将受到高度赞赏.
谢谢!
此外,通过使用Xen或VMware ESXi而不是VirtualBox,您可以从硬件中获得更好的性能.
相关文章
转载注明原文:并行运行多个VM时,VirtualBox性能下降 - 代码日志