Date: Sun, 25 Feb 2007 14:46:56 -0500 From: Kris Kennaway <kris@obsecurity.org> To: Jeremie Le Hen <jeremie@le-hen.org> Cc: freebsd-performance@FreeBSD.org, Kris Kennaway <kris@obsecurity.org> Subject: Re: Progress on scaling of FreeBSD on 8 CPU systems Message-ID: <20070225194656.GA77409@xor.obsecurity.org> In-Reply-To: <20070225192239.GN2479@obiwan.tataz.chchile.org> References: <20070224215508.GA41968@xor.obsecurity.org> <20070225192239.GN2479@obiwan.tataz.chchile.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--T4sUOijqQbZv57TR Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Feb 25, 2007 at 08:22:39PM +0100, Jeremie Le Hen wrote: > Hi, Kris, >=20 > On Sat, Feb 24, 2007 at 04:55:08PM -0500, Kris Kennaway wrote: > > Now that the goals of the SMPng project are complete, for the past > > year or more several of us have been working hard on profiling FreeBSD > > in various multiprocessor workloads, and looking for performance > > bottlenecks to be optimized. > >=20 > > We have recently made significant progress on optimizing for MySQL > > running on an 8-core amd64 system. The graph of results may be found > > here: > >=20 > > http://www.freebsd.org/~kris/scaling/scaling.png > >=20 > > This shows the graph of MySQL transactions/second performed by a > > multi-threaded client workload against a local MySQL database with > > varying numbers of client threads, with identically configured FreeBSD > > and Linux systems on the same machine. >=20 > I'm really glad to be looking at these results eventually. Thanks to > all FreeBSD committers. >=20 >=20 > > The test was run on FreeBSD 7.0, with the latest version of the ULE > > 2.0 scheduler, the libthr threading library, and an uncommitted patch > > from Jeff Roberson [1] that addresses poor scalability of file > > descriptor locking (using a new sleepable mutex primitive); this patch > > is responsible for almost all of the performance and scaling > > improvements measured. It also includes some other patches (collected > > in my kris-contention p4 branch) that have been shown to help > > contention in MySQL workloads in the past (including a UNIX domain > > socket locking pushdown patch from Robert Watson), but these were > > shown to only give small individual contributions, with a cumulative > > effect on the order of 5-10%. >=20 > MySQL uses gettimeofday(2) very often. ISTR it has been stated > that MySQL performances could make the most of a system-wide shared > page where the current time would be updated regularly by the kernel; > gettimeofday(2) could consequentely work without any context switch. >=20 > Do the patches you're talking about include such a feature already ? No, but when we tried hacking up gettimeofday last year to see what effect the reduction of syscalls had, it didn't make a lot of difference (at the time there was a theory that this was a major source of the performance difference between freebsd and linux here). It would still be worthwhile to explore implementing such a thing, because it could give some incremental improvements, which are now becoming more interesting to explore for this workload. Kris --T4sUOijqQbZv57TR Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (FreeBSD) iD8DBQFF4eewWry0BWjoQKURAhgWAJ9Z/V/HSHJoBQKmih03DlIS9kxtuwCg8F8P Ix4WaBCnPuBatAF5qAjYkjI= =Juhg -----END PGP SIGNATURE----- --T4sUOijqQbZv57TR--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070225194656.GA77409>