From owner-freebsd-amd64@FreeBSD.ORG Wed May 19 04:52:02 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 20E0316A4CE for ; Wed, 19 May 2004 04:52:02 -0700 (PDT) Received: from ojoink.com (center.ojoink.com [216.65.123.180]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0DB7443D49 for ; Wed, 19 May 2004 04:52:02 -0700 (PDT) (envelope-from amd64list@jpgsworld.com) Received: (qmail 46457 invoked by uid 89); 19 May 2004 11:56:02 -0000 Received: from unknown (HELO MAINBX.jpgsworld.com) (amd64list@jpgsworld.com@24.10.96.33) by center.ojoink.com with SMTP; 19 May 2004 11:56:02 -0000 Message-Id: <5.2.0.9.2.20040519044815.0156fbb8@mail.ojoink.com> X-Sender: amd64list@jpgsworld.com@mail.ojoink.com X-Mailer: QUALCOMM Windows Eudora Version 5.2.0.9 Date: Wed, 19 May 2004 04:51:47 -0700 To: freebsd-amd64@freebsd.org From: JG In-Reply-To: <5.2.0.9.2.20040518170424.03c42748@mail.ojoink.com> References: <200405181359.18291.peter@wemm.org> <5.2.0.9.2.20040518103357.04c6cbb8@mail.ojoink.com> <5.2.0.9.2.20040518103357.04c6cbb8@mail.ojoink.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: Re: Why is MySQL nearly twice as fast on Linux/AMD64 Vs. FreeBSD/AMD64? X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2004 11:52:02 -0000 >> >> > MySQL Statically compiled with libc_r >> ^^^^^ >>That's your killer. You're using the the single-process polling loop >>based threads and comparing it to linux's parallel process based >>threads. The moment one thread blocks on disk IO, everything stops. >> >>You want -lpthread instead, but this isn't going to be happy on >>5.2.1-RELEASE. I've fixed a lot of bugs in 5-current that would mean >>the difference between it working versus crashing. >> >>Also, there are patches to change MySQL to use PTHREAD_SCOPE_PROCESS >>threads with -lpthread. This works out a little better on benchmarks >>since it can make better use of the ligher weight context switches. >> >>-- >>Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com >>"All of this is for nothing if we don't go to the stars" - JMS/B5 > > >Yes I'll definitely try this next. > >Thanks to everyone for all the tips & suggestions. > >I'll post some updated results tomorrow sometime. More testing results... results still pretty much the same: ----------------------------------------------------------------------------- Testing configuration: FreeBSD amd64f.attbi.com 5.2-CURRENT FreeBSD 5.2-CURRENT #0: Tue May 18 07:17:39 PDT 2004 KERNEL OPTIONS: SCHED_4BSD, Configure options I used in makefile: CONFIGURE_ARGS= --localstatedir=${DB_DIR} \ --without-debug \ --without-readline \ --without-libedit \ --without-bench \ --without-extra-tools \ --without-libwrap \ --without-mysqlfs \ --without-vio \ --with-low-memory \ --with-comment='FreeBSD port: ${PKGNAME}' \ --enable-thread-safe-client OTHER PORT OPTIONS USED: BUILD_OPTMIZED=yes BUILD_STATIC=yes MySQL Version Ver 4.1.1-alpha for portbld-freebsd5.2 on amd64 (FreeBSD port: mysql-server-4.1.1_2) MySQL Statically compiled with: libpthread.so.1 libz.so.2 libcrypt.so.2 libstdc++.so.4 libm.so.2 libc.so.5 RESULTS BELOW: ----------------------------------------------------------------------------- Generating 500000 records... Creation of 500000 records took 177 seconds. Average of 2824.8587570621 records per second. Creating records for 10 seconds... Created 32603 records in 10 seconds. Average of 3260.3 records per second. Creating random 50000 md5 hash records. Creation of 50000 random md5 hash inserts took 17 seconds. Average of 2941.1764705882 records per second. Creating random md5 hash records for 10 seconds... Created 24109 random records in 10 seconds. Average of 2410.9 records per second. Your databases overall average score is 2859.3088069126 records per second. Same config, using SCHED_ULE instead: Generating 500000 records... Creation of 500000 records took 156 seconds. Average of 3205.1282051282 records per second. Creating records for 10 seconds... Created 31062 records in 10 seconds. Average of 3106.2 records per second. Creating random 50000 md5 hash records. Creation of 50000 random md5 hash inserts took 14 seconds. Average of 3571.4285714286 records per second. Creating random md5 hash records for 10 seconds... Created 30214 random records in 10 seconds. Average of 3021.4 records per second. Your databases overall average score is 3226.0391941392 records per second.