Search code examples
buildbuild-processcontinuous-integration

Is it sensible to use a ramdisk on a build server?


At my company we are currently researching various strategies for speeding up our CI builds. We have profiled our builds and determined that we are constrained by an I/O bottleneck. We have quite a few options to deal with that in the near future (~1-2 months) but would really like to see an improvement now.

I proposed using a ramdisk as the checkout and buildfile location. The build outputs and logs would of course be stored on physical disk.

Is that a sensible thing to do or are there significant drawbacks to this approach? I am not looking for answers that regard the hardware side of things but rather than if the interaction between common build systems (e.g. MSBuild) and a ramdisk will cause any issues and if there are other risks I need to be aware of.


Solution

  • As long as you have enough memory, it's a very sensible thing to do.

    The only real drawback is, naturally, your build gets lost on shutdown/power failure which usually isn't a big concern for the CI builds.