The disks proposal looks great, but I'm a little worried about the CPU: while RAM and disks are necessary to achieve a consistent number of parallel builders, CPU remain a requirement to build big packages and packages that do not make use of ccache (mainly those using languages other than C/C++).kraileth wrote:I would imagine that the processor won't be top-notch but I think the priorities are: 32 GB RAM and SSD storage (probably mixed with 2 SSDs for building purposes) and 2 HDDs for storage.
My worry increase while thinking that the big packages (say 20%) will use the 80% of the build time.
Sorry about the premature rant, but I though it is better we all understand the complete picture.
Depending on available storage, probably yes.I guess. In that case the machine could perhaps also assume a second role: Hosting backups of the Canadian server. This shouldn't put too much extra load on the server, especially if we throttle traffic. IMO this is something that we should consider.
I can tell you it is not going to happen, I have clearly understood that the author decided to use swap to deal with the extra requirements from big packages, and admittely it make sense considering that is nearly impossibile to predict what packages will require more resources.I'd like Synth to grow a feature like this: Recognize the "biggies" (webkit*, chromium, ...) from a list and use a different profile for them.
Just to let you understand, each "job" (C/C++ compiler) usually consume 100/200 MB of RAM, but I have seen enough often some use of 500 MB, and a peak (ok it was a single case) of 2 GB.
So, forget about.
Unless the improvement while using 12 jobs is coming from ccache ... i.e. first time you build using 2 jobs and second time using 12 jobs ...This is because I've often all packages built except for Chromium - and that one took around 9 hours to build with just two jobs. At the same time 5 other builders have already reached the "shutdown" state and if Chromium is build with e.g. 12 jobs instead, it's done much, much more quickly. Any thoughts on this? Perhaps this could be a future feature request for Synth.
1) make sure you ccache is working properly, upon rebuild chromium will build in much less time.
2) next time you will update, try to use something like:
Code: Select all
synth just-build www/chromium # build chromium and dependency first using 2 builder and 8 jobs
synth prepare-system # build the remaining pkgs
pkg upgrade -r Synth # upgrade