在我的公司,我们目前正在研究加速CI构建的各种策略。我们已经对我们的构建进行了分析,并确定我们受到I / O瓶颈的限制。在不久的将来(〜1-2个月),我们有很多选择可以解决这个问题,但我们真的希望看到现在的改进。
我建议使用ramdisk作为checkout和buildfile位置。构建输出和日志当然会存储在物理磁盘上。
这是一个明智的做法,或者这种方法有明显的缺点吗?我不是在寻找关于硬件方面的答案,而是寻找常见构建系统(例如MSBuild)和ramdisk之间的交互会导致任何问题以及是否还有其他风险需要注意的问题。
答案 0 :(得分:10)
只要你有足够的记忆力,这是一件非常明智的事情。
唯一真正的缺点是,当然,您的构建会因关闭/电源故障而丢失,这通常不是CI构建的主要问题。
答案 1 :(得分:1)
我刚刚在我的“构建服务器”(实际上是一个Powershell脚本)上运行了一些测试,它从Subversion中检出3600个文件,编译它们(DOT.NET)并运行一些单元测试。
在我的正常(非超快)硬盘上,此过程需要35秒。
在Windows 7上使用Dataram RamDisk工具和默认的FAT32设置需要45秒。
使用NTFS重新格式化将其降低到30秒。
但是使用SSD(在我的情况下是OCZ Vertex 2)只需要27秒。
我做了几次测试,但时间总是一样。
我们可以从中学到什么?
Ram磁盘并不总是更快,请确保您使用不同的产品测试不同的产品 设置。
固态硬盘甚至可能比RAM磁盘更快,这让我感到惊讶。