Building a new workstation - dual or quad-core CPU for FreeBSD 7?

Philip M. Gollucci philip at
Mon Sep 17 13:31:00 PDT 2007

Kris Kennaway wrote:
> Josh Carroll wrote:
>>> That's good to know.  You should be using libthr for threaded
>>> performance though :)  That benchmark is probably almost all userland
>>> though, so performance may not suffer much from libpthread.
>> Oh I wasn't sure if libthr was the preferred thread library for 6.2
>> also (I'd heard that was the case for -CURRENT).
>> I should look into whether ffmpeg can be built with libthr instead and
>> compare performance. Somewhat off topic, so I'll leave it at that, but
>> thanks again for the great info. I'm really looking forward to
>> 7.0-RELEASE, obviously :)
> Yeah, it is preferred on 6.x too (libkse has truly atrocious
> performance).  It's trivial to change it over, just add an entry to
> /etc/libmap.conf:
Really?  I didn't you you were supposed to switch until 7.0 -- were the
libthr chnages MFC'd and I missed it ?

I've read

I've been following the discussions on this pretty closely on lists.

PU: Intel(R) Xeon(R) CPU           E5310  @ 1.60GHz (1597.53-MHz
K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x6f7  Stepping = 7


  AMD Features=0x20100800<SYSCALL,NX,LM>
  AMD Features2=0x1<LAHF>
  Cores per package: 4
real memory  = 9395240960 (8960 MB)
avail memory = 8291323904 (7907 MB)
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs

uname -a
root at  amd64

I'll recompile the kernel eventually to slim it down.

using 4BSD scheduler since its 6.2

ls -1d /var/db/pkg/mysql*

ldd /usr/local/libexec/mysqld
mysqld: => /lib/ (0x800a5c000) => /usr/lib/ (0x800b70000) => /lib/ (0x800c79000) => /usr/lib/ (0x800d92000) => /lib/ (0x800f89000) => /lib/ (0x8010a5000) => /lib/ (0x8011d0000)

sysctl kern.timecounter.choice
       kern.timecounter.choice: TSC(-100) ACPI-fast(1000) i8254(0)

sysctl kern.timecounter.hardware
kern.timecounter.hardware: TSC

Disks are:
	1) RAID1(2 disks) OS array with mysql logs, replication logs,
		and innodb logs.
	2) RAID1+0(6disks) innodb mysql data.
	3) /tmp is a md0 malloc backed device
	(I'm thinking of using tmpfs in 7.0 when I switch)

using libmap.conf to use libc_r, libpthread, and libthr were all about
equal actually for insert heavy operations.

innodb_thread_concurrency = 8

At 16 aka core*2 'show innodb status' showed too much mutex locking and
dropping it had drastic improvements -- despite mysql recommending the
2x value.

innodb_flush_log_at_trx_commit = 0
Also helped about 7% but thats due to disk speeds.

I can run an oltp sysbench on it if you would like.

Philip M. Gollucci (philip at c:323.219.4708 o:703.749.9295x206
Senior System Admin - Riderway, Inc. /
1024D/EC88A0BF 0DE5 C55C 6BF3 B235 2DAB  B89E 1324 9B4F EC88 A0BF

Work like you don't need the money,
love like you'll never get hurt,
and dance like nobody's watching.

More information about the freebsd-questions mailing list