[yocto] Suitable machine for yocto

Mark Hatle mark.hatle at windriver.com
Sun Sep 10 09:06:13 PDT 2017


On 9/10/17 2:00 AM, Usman Haider wrote:
> Hi,
> 
> Can someone please recommend some good machine for yocto environment and
> building sdks. I am interested in RAM, hard disk space, processor.

You want fast I/O, as much RAM and as many (fast) cores as you can afford.  I
don't think there is a single answer as what is 'best'.  It also depends on
which Yocto Project versions, and which layers you are using as to which
combination is best.

I run builds on my laptop, 4-core/8-thread & SSD and 16 GB of ram from a few
years ago.  It's fast, but I wouldn't want to do all of my development on it.

I've had 8-core/16-thread (32GB ram/standard disk), 16-core/32-thread (72GB
ram/SAS-3 RAID), 24-core/48-thread (64GB ram/SATA - software RAID), 72-core/144
thread (256 GB ram/hardware raid/SAS-3), and recently upgraded to
96-core/192-thread (256 GB ram/hardware raid/SAS-3).

I would not go below quad-core (8-thread) myself.  You can get a quad core, good
quality machine for $1000 or less these day.  If you move up to the larger
machines, you can even be able to get to a 24-core for less then $5000.  By the
time you get to 96-core and all of the googles you are likely talking $50000 or
more.

By clock raid, the 24-core machine is the fastest..  While the 96-core monster
can do the builds the quickest.  But when you figure out cost/performance/etc..
the 24-core is probably the best performance per dollar, and with adequate RAM
(I'd say at least 64GB if not 128GB), and fast I/O you'll probably get the
lowest price for the best performance in that category.

If you need sheer speed and price is no option, then the (4 CPU w/ 24 core each)
96-core monster (or even better) is what you want to go with.  256GB ram would
be a minimum with that configuration (I'm not sure if more is actually helpful,
I rarely end up in swap -- but I go get into situations where more then 50% of
ram is used.)  With that many cores, disk I/O starts to become obvious.  So
faster the better... SSDs would be the fastest, but of course the most expensive.

If your employer is paying for the machine, you may be able to get a better then
normal machine by explaining how much time a faster machine will save and how
comparing to your salary a machine is inexpensive.  (If you are a contractor or
student, that changes of course.)  :)

So my point is really, figure out how much money you have to spend.  My rule of
thumb is roughly:

1) Buy as many cores as you can.  Try to get a CPU that has Hyperthreading or
equivalent to double the effective core count.  Fastest processing speed helps
in repetitive cases vs full system builds.

So if the choice is a 24 core @ 2.2GHz vs 22 core @ 2.5, I'd probably go with
the 22-core.  While if it was 24 core @ 2.2GHz vs 8 core @ 4.2 GHz, I'd go with
the 24 core.

2) Try to get at least 1 GB of ram per thread (2 GB per core..)  You can cut
back on the ram (if necessary) once you hit 72 threads or so.   (72 threads
right now seems to cover most of the parallelization in a full system build.
There are points in the system where it can parallelize MUCH more, but they are
fairly rare.)

3) You need fast disks.  Software RAID works fine, but you likely need to buy at
least a couple of disk to boost performance.  SSDs are fast, but lots of builds
take space, so fast SATA or even better SAS drives are the best performance per
cost.



More information about the yocto mailing list