Hardware suggestion for fast remote builder machine

Hi,

I am frequently building large Nix packages on my laptop. I want to run builds on remote machine to free up my laptop from long lasting high loads. I am thinking about getting some fast machine, put it under my desk and use it as the remote builder. I already tried nixbuild.net but I can’t afford it for my open source/volunteer work.

I am not very much in to the hardware. I am thinking about x86_64 machine with fast AMD CPU, with 32GB or 64GB of RAM (so I would be able to run nixpkgs-review on packages with many reverse dependencies). I guess I need something with good cooling as well.

Do you have any suggestions for good performance/price ratio ?

Thanks,

Ivan.

Depending on what you’re building, it’s usually the case that the more cores/threads the better. And for RAM, 2G per thread is probably the bare minimum, with more being preferable. I have a 16 core / 32 thread machine with 64GB of RAM and there are some extreme scenarios where it runs out of memory and a build gets killed (like building webkit). I’ve had to reduce the number of threads Nix allows a build to use to accommodate this. Granted, webkit really is an extreme scenario, but really any massive C++ package is going to have this problem.

AMD’s consumer chips are great lower cost options for <= 16 cores / 32 threads. If you want more, you’re pretty much stuck with Threadripper, Epyc, or Xeon. For new hardware, that means paying business class prices, meaning the system is likely going to cost closer to $10,000USD or potentially even more. For used, you can find way cheaper stuff on ebay, but you have to keep in mind just how much faster each generation is than the last. For instance, my 16 core Ryzen 7950X from the current generation of consumer CPUs is almost exactly twice as fast as my 16 core Threadripper 1950X from 2017. So this is where the “more cores the better” philosophy starts to fall apart; as a 24 core Epyc from the same era would still be slower than my current gen 16 core.

Thank you very much @ElvishJerricco