Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 03 Jul 2006 04:53:20 +0100
From:      Hugo Silva <hugo@barafranca.com>
To:        freebsd-performance@freebsd.org
Subject:   MySQL 5.0.22 , FreeBSD 6.1-STABLE: Benchmark
Message-ID:  <44A894B0.3010506@barafranca.com>

next in thread | raw e-mail | index | archive | help
Today I decided to benchmark MySQL 5 performance on FreeBSD 6.1-STABLE.
This server is a Dual Xeon 2.8GHz, 4GB of RAM and 2x73GB SCSI disks that 
do 320MB/s

For all the tests, I restarted mysqld prior to starting the test,  
waited for about 1 minute for it to settle down, and ran super smack. 
For the consecutive runs, I executed super-smack right after the 
previous run ended.

Switching from HTT to no HTT was achieved by 
machdep.hyperthreading_allowed, and switching from/to libpthread/libthr 
was done via libmap.conf.

System:

FreeBSD ?? 6.1-STABLE FreeBSD 6.1-STABLE #3: Mon Jul  3 03:10:35 UTC 
2006     ??@??:/usr/obj/usr/src/sys/DATABASE  i386

Here are the results:


MySQL 5.0.22, built with BUILD_OPTIMIZED=yes and WITH_PROC_SCOPE_PTH=yes


=== 4BSD + libthr + HTT on ===

Run #1
connect: max=4ms  min=1ms avg= 3ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           20405.86

Run #2
connect: max=3ms  min=1ms avg= 2ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           20253.53

Run #3
connect: max=4ms  min=2ms avg= 2ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           20270.33




=== 4BSD + libthr + HTT off ===

Run #1
connect: max=5ms  min=2ms avg= 3ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           18253.60

Run #2
connect: max=6ms  min=1ms avg= 3ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           18350.27

Run #3
connect: max=4ms  min=1ms avg= 2ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           18529.71


=== 4BSD + libpthread + HTT on ===

Run #1:
connect: max=17ms  min=2ms avg= 7ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      5           0           3935.94


Run #2:
connect: max=18ms  min=1ms avg= 8ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      2           0           3919.89

Run #3:
connect: max=22ms  min=1ms avg= 13ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      2           0           3911.66


=== 4BSD + libpthread + HTT off ===
connect: max=12ms  min=1ms avg= 5ms from 10 clients

Run #1:
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           11193.40

Run #2:
connect: max=6ms  min=4ms avg= 5ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           11428.30

Run #3:
connect: max=7ms  min=4ms avg= 5ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      1           0              13714.02











=== ULE + libthr + HTT on ===
Run #1:
connect: max=2ms  min=0ms avg= 0ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      1           0           16179.09

Run #2:
connect: max=14ms  min=0ms avg= 7ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           17451.31

Run #3:
connect: max=5ms  min=1ms avg= 3ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      1           0              15787.02


=== ULE + libthr + HTT off ===

Run #1:
connect: max=6ms  min=6ms avg= 6ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0              11588.19

Run #2:
connect: max=220ms  min=2ms avg= 46ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           10651.16

Run #3:
connect: max=10ms  min=0ms avg= 5ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           10158.63



=== ULE + libpthread + HTT on ===

Run #1:
connect: max=9ms  min=1ms avg= 7ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      2           0           5869.52

Run #2:
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      2              0        5839.95

Run #3:
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      2           0           5680.97



=== ULE + libpthread + HTT off ===
Run #1:
connect: max=10ms  min=1ms avg= 8ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0              0        6111.21

Run #2:
connect: max=1597ms  min=1ms avg= 177ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      0           0           7225.26

Run #3:
connect: max=9ms  min=1ms avg= 4ms from 10 clients
Query_type      num_queries     max_time        min_time        q_per_s
select_index    200000      1           0           8187.13





Conclusions: 4BSD performed much better than ULE.
             libthr performs a lot better than libpthread. I'd risk 
saying libpthread has issues!
             Hyperthreading is sometimes benefitial. On the winning 
combination (4BSD+libthr), it is benefitial. On some other combinations 
(4BSD+libpthread), it seems to greatly impair performance.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44A894B0.3010506>