From: "Jean-Marie Lemetayer" <jean-marie.lemetayer@savoirfairelinux.com>
To: Paul Barker <pbarker@konsulko.com>
Cc: Mikko Rapeli <mikko.rapeli@bmw.de>,
oliver westermann <oliver.westermann@cognex.com>,
yocto@lists.yoctoproject.org,
embedded-discuss <embedded-discuss@lists.savoirfairelinux.net>
Subject: Re: [yocto] What are the key factors for yocto build speed?
Date: Wed, 18 Mar 2020 10:12:26 -0400 (EDT) [thread overview]
Message-ID: <251912923.167286.1584540746314.JavaMail.zimbra@savoirfairelinux.com> (raw)
In-Reply-To: <CAM9ZRVuQyj7X0YFqkpSFWM2=kQHnu8ZGpMsD34ntHYny4x7XJg@mail.gmail.com>
Hi,
In my company we have tested some "big Ryzen" configurations to speed up Yocto builds.
The conclusion of these tests is that the build time is almost only related to the CPU score: https://www.cpubenchmark.net/high_end_cpus.html
The speed (overclock) and size of the RAM does not influence the build time, neither the the use of a SATA SSD or a NVME.
For example one of our build servers is using:
- AMD Ryzen 9 3900X
- ASUS PRIME X570-P
- 32Go DDR4 3200 MHZ CL14
- 500Go SSD
It is a really good price / build time ratio configuration.
Best regards,
Jean-Marie
On Mar 18, 2020, at 2:29 PM, Paul Barker pbarker@konsulko.com wrote:
> On Wed, 18 Mar 2020 at 13:01, Mikko Rapeli <mikko.rapeli@bmw.de> wrote:
>>
>> On Wed, Mar 18, 2020 at 05:52:37AM -0700, Oliver Westermann wrote:
>> > Hey,
>> >
>> > We're currently using a VM on Windows and it's a lot slower than the native
>> > linux build (which is expected).
>> > We're looking into getting a dedicated build server for our team (basically a
>> > self-build tower PC). Any suggestions what to put in that build to get the most
>> > out of it?
>> >
>> > Currently we're looking at a big Ryzen, 64G of RAM and one or multiple SSDs on a
>> > "consumer grade" board like the X570.
>>
>> Drop all virtualization and go for Linux on bare metal. Then make sure there
>> is enough(tm) physical RAM for each CPU thread. For a "big Ryzen" the 64G of RAM
>> sounds
>> too little. I'd go higher there, but it all depends what kind of project
>> is being compiled.
>>
>> I would also setup CPU, RAM, disk IO and network IO monitoring on the build
>> machines
>> and review and monitor the build times and results when the project evolves.
>> There are
>> times when most CPUs will be idling and there will be times when IO to disk is
>> happening even when RAM is available. Linux kernel can be tuned to avoid disk IO
>> if
>> RAM is still available for example.
>
> What Mikko said is excellent advice.
>
> I'd recommend NVMe drives if you can. My build machine has two large
> M.2 NVMe drives, one is used for the working directory and the other
> for sstate, downloads and source checkouts to make the best use of the
> available bandwidth. I find that XFS is a better fit than ext4 when
> you've got fast drives and highly parallel I/O workloads.
>
> Make sure you spread your RAM across the different memory channels on
> your motherboard as this increases memory bandwidth - this usually
> means either filling your RAM slots or half-filling them with RAM in
> every 2nd slot but you'll need to check the motherboard manual to
> confirm the channel layout.
>
> Let me know if you need a detailed review of your proposed setup.
>
> Thanks,
> Paul
>
>
next prev parent reply other threads:[~2020-03-18 14:12 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-18 12:52 What are the key factors for yocto build speed? Oliver Westermann
2020-03-18 13:01 ` [yocto] " Mikko Rapeli
2020-03-18 13:29 ` Paul Barker
2020-03-18 14:12 ` Jean-Marie Lemetayer [this message]
2020-03-18 14:30 ` Alexander Kanavin
2020-03-18 14:49 ` Adrian Bunk
2020-03-18 15:09 ` Mike Looijmans
2020-03-18 15:51 ` Mikko Rapeli
2020-03-18 17:13 ` <EXT> " Srini
2020-03-18 17:47 ` David Stewart
2020-03-18 18:12 ` Yann Dirson
2020-03-18 18:15 ` Srini
2020-03-20 16:32 ` Philip Balister
2020-03-19 6:27 ` Mike Looijmans
2020-03-21 18:43 ` Oliver Westermann
2020-03-18 14:09 ` [yocto] " Mike Looijmans
2020-03-18 22:56 ` Ross Burton
2020-03-19 8:05 ` Mikko Rapeli
2020-03-19 11:04 ` Richard Purdie
2020-03-19 11:43 ` Mikko Rapeli
2020-03-19 11:48 ` Richard Purdie
2020-03-19 16:07 ` Mike Looijmans
2020-03-19 16:29 ` Yann Dirson
2020-03-19 17:04 ` Richard Purdie
2020-03-19 18:09 ` Yann Dirson
2020-03-19 17:21 ` Adrian Bunk
2020-03-19 17:26 ` Richard Purdie
2020-03-20 14:58 ` Mike Looijmans
2020-03-20 17:24 ` Adrian Bunk
2020-03-19 18:23 ` Khem Raj
[not found] ` <15FD6B43E957AFDB.13190@lists.yoctoproject.org>
2020-03-18 14:36 ` Mike Looijmans
2020-03-18 15:38 ` Martin Jansa
2020-03-21 18:39 ` Oliver Westermann
2020-03-21 18:58 ` [yocto] " Martin Jansa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=251912923.167286.1584540746314.JavaMail.zimbra@savoirfairelinux.com \
--to=jean-marie.lemetayer@savoirfairelinux.com \
--cc=embedded-discuss@lists.savoirfairelinux.net \
--cc=mikko.rapeli@bmw.de \
--cc=oliver.westermann@cognex.com \
--cc=pbarker@konsulko.com \
--cc=yocto@lists.yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox