FreeBSD on Ryzen
Don Lewis
truckman at FreeBSD.org
Fri Mar 24 23:15:23 UTC 2017
On 22 Mar, Don Lewis wrote:
> I put together a Ryzen 1700X machine over the weekend and installed the
> 12.0-CURRENT r315413 snapshot on it a couple of days ago. The RAM is
> DDR4 2400.
>
> First impression is that it's pretty zippy. Compared to my previous
> fastest machine:
> CPU: AMD FX-8320E Eight-Core Processor (3210.84-MHz K8-class CPU)
> make -j8 buildworld using tmpfs is a bit more than 2x faster. Since the
> Ryzen has SMT, it's eight cores look like 16 CPUs to FreeBSD, I get
> almost a 2.6x speedup with -j16 as compared to my old machine.
The reason that I put this machine together is for package building with
poudriere. Unfortunately I don't see quite as much performance
improvement there, possibly because I set ALLOW_MAKE_JOBS=yes, which can
result in a *lot* of running processes at times and probably thrashes
the caches pretty badly:
last pid: 78855; load averages: 120.05, 106.95, 86.49 up 0+14:09:43 15:12:59
413 processes: 123 running, 281 sleeping, 1 stopped, 8 zombie
CPU: 92.3% user, 0.0% nice, 7.7% system, 0.0% interrupt, 0.0% idle
Mem: 5873M Active, 3662M Inact, 36G Laundry, 13G Wired, 4316M Free
ARC: 9564M Total, 2577M MFU, 6739M MRU, 14M Anon, 162M Header, 72M Other
Swap: 80G Total, 5336M Used, 75G Free, 6% Inuse, 132K In
The high laundry and swap usage is due to cold data in tmpfs. For much
of the run tmpfs helps avoid a lot of unnecessary I/O.
It looks like I get about a 2X improvement vs. my FX-8320E, but I
don't have an exact number because I'm seeing some consistent build
breakage in a few of the ports that I build. I get SIGSEGV failures in
lang/go and lang/ghc. I also get a compile failure in math/openblas due
to what looks like an undefined preprocessor symbol. Continuing to
investigate ...
It would be nice if poudriere could balance threads between different
build jails like make can do with parallel submakes ...
More information about the freebsd-amd64
mailing list