Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Jan 2012 10:50:19 +0100
From:      "O. Hartmann" <ohartman@zedat.fu-berlin.de>
To:        performance@FreeBSD.org
Subject:   Re: ULE vs. 4BSD scheduler benchmarks
Message-ID:  <4F25165B.6080805@zedat.fu-berlin.de>
In-Reply-To: <4F247975.9050208@FreeBSD.org>
References:  <4F247975.9050208@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigB5B931BAC01B4C3DE16448CC
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Am 01/28/12 23:40, schrieb Florian Smeets:
> [current@ bcc'ed to get a wider audience, please discuss on performance=
@]
>=20
> Hi,
>=20
> in recent times i saw a lot of threads where it was suggested people
> should switch from the ULE to the 4BSD scheduler. That got me thinking
> and i decided to run a few benchmarks. I looked through all the stuff
> Kris and Jeff did a few years ago and tried to follow their example. Th=
e
> main motivation is however that we (Attilio Rao and I) want to set a
> baseline for future reference, mainly for the work that's going on in
> the vmcontention branch right now, that is the reason why all tests wer=
e
> run on head@r229659. All debugging was disabled (WITNESS and friends fo=
r
> the kernel and MALLOC_PRODUCTION=3Dyes for libc).
>=20
> For now i ran 3 different things. MySQL/sysbench, PostgreSQL/pgbench an=
d
> pbzip2.
>=20
> All software was installed from ports with the default system gcc (gcc
> version 4.2.1 20070831 patched [FreeBSD]), with the exception of
> PostgreSQL. I created new postgres92-{server,client} ports with a
> snapshot of PostgreSQL 9.2dev from 16.01.2012, as a lot of scalability
> work was done in PostgreSQL 9.2.
>=20
> MySQL version 5.5.20
> sysbench version 0.4.12
> PostgreSQL/pgbench version 9.2dev
> PBZIP2 version v1.1.6
>=20
> The machine these test were run on is a 2x4 core Xeon L5310  @ 1.60GHz
> with 4GB RAM. Here is the complete topology:
>=20
> kern.sched.topology_spec: <groups>
>  <group level=3D"1" cache-level=3D"0">
>   <cpu count=3D"8" mask=3D"ff">0, 1, 2, 3, 4, 5, 6, 7</cpu>
>   <children>
>    <group level=3D"2" cache-level=3D"2">
>     <cpu count=3D"4" mask=3D"f">0, 1, 2, 3</cpu>
>    </group>
>    <group level=3D"2" cache-level=3D"2">
>     <cpu count=3D"4" mask=3D"f0">4, 5, 6, 7</cpu>
>    </group>
>   </children>
>  </group>
> </groups>
>=20
> The database benchmarks were all run with a work set that fit into the
> configured database memory, so after the warmup phase no disk io was
> involved. sysbench was run with 1 million rows, innodb was the engine w=
e
> used as Kris work already showed that it scales much better than myisam=

> (also innodb is the default in MySQL's 5.5 branch). Pgbench was run
> using a scaling factor of 100. The connection to the databases was usin=
g
> a unix socket, also only read only tests were run.
>=20
> The input and output files for the pbzip2 test were on tmpfs.
>=20
> The results are available in this Google docs spreadsheet, if you scrol=
l
> down there are also some nice graphs.
>=20
> https://docs.google.com/spreadsheet/ccc?key=3D0Ai0N1xDe3uNAdDRxcVFiYjNM=
SnJWOTZhUWVWWlBlemc
>=20
> Over time i will add more benchmarks to the doc (i.e nginx/php-fpm and
> so on). I tried to run some nginx benchmarks, but those are limited by
> netisr, as i did not find a web server benchmark tool which can use uni=
x
> sockets, any suggestions welcome.
>=20
> The conclusion right now seems to be that ULE is faster for database
> workload, but for strongly CPU-bound workloads 4BSD can be a better
> choice. I can provide KTR traces and/or schedgraph output for cases
> where 4BSD is better than ULE.
>=20
> I want to thank Sean Bruno and Yahoo for setting up / providing the
> machines to run these test on, and Attilio for suggestions and his
> general helpfulness.
>=20
> Florian
>=20

Florian,
thanks a lot for your efforts. Nice work.

We got a new workstation, two socket 6-core westmere XEON's, I forgot
the specifications, but they're driven with 2,66 GHz each and have
access to 96GB RAM. Maybe I can also setup some benchmarks, but I need
advice since I'm not a kernel GURU.
The box is prmarily running Linux due to the TESLA/GPGPU stuff we run on
it. A colleague of mine developend a software for huge satellite imagery
correction needed in planetary science, the software is highly scalable
(OpenMP) and massively using OpenCL, but using OpenCL could be switched
off. We are not interested in database performance, but more in HPC
stuff and scientific calculations. I guess we could provode also some
benchmark results after a proper setup for the workload. Since this box
in question is also running a Linux Ubuntu 11.04 server, I would be
interesting having a comparison to that.

I intended to use FreeBSD 9.0-STABLE for benchmarking, but as I can see,
it is more applicable to use FreeBSD 10 since development goes on on
that branch.

Oliver


--------------enigB5B931BAC01B4C3DE16448CC
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (FreeBSD)

iQEcBAEBAgAGBQJPJRZgAAoJEOgBcD7A/5N8eqMH/iruFUnkx6Q92t3SJrh4G3YR
kuacxQtVa5f1hOQUUSTS7vfmV60kMY+1lmOcUlo/SALZOqVldd0yuEbR6bhsTmeT
ZaXWweOlviG+X7j2FDfUBJeuYqRmM8/oPJBIQfsZuW59bhZHGTBjdwGEqfhuuNWK
XvKZupPM3azy+obQJuaQ2vmcIwF5pCfXB1Rl6NvGSDSUqNuDE62LkwCIZcPxjBG1
jd3d0i5yU1u3m7J47/T2WYcrjQY43+JX7OYIikuJYPrk5p1jBSXyUimqnvQ30qaD
4cemOQsWbbMyxU8wSzrEpq7bnoi4sqs0skk+KSNOG6524JzFS5zthA/A5RbAS90=
=7oAA
-----END PGP SIGNATURE-----

--------------enigB5B931BAC01B4C3DE16448CC--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F25165B.6080805>