FreeBSD tests

I’m continuing my experiments with different OS and today I tested FreeBSD 6.0 on my box.
(more details about box and benchmark see here https://www.percona.com/blog/2006/06/13/quick-look-at-ubuntu-606/).
Initially I was very pessimistic about FreeBSD, as results were (in transactions/sec, more is better.
for comparison the results from Suse 10.0):

InnoDB

threads

FreeBSD 6

Suse 10.0

Suse/ FreeBSD ratio

1

436.97

536.91

1.23

4

322.08

816.27

2.53

16

519.94

639.05

1.23

64

crash

547.07

256

357.09

MyISAM

threads

FreeBSD 6

Suse 10.0

Suse/ FreeBSD ratio

1

335.56

429.89

1.28

4

165.16

863.23

5.23

16

322.66

537.67

1.67

64

crash

516.00

256

346.65

The crash with many threads in FreeBSD is known problem and is not MySQL fault. More info is available in FreeBSD bug report

I’m not big expert in FreeBSD and did not saw http://wikitest.freebsd.org/MySQL before. This page recommends to use libthr instead of libthreads.
The results with libthr looks better:

InnoDB

threads

FreeBSD 6

Suse 10.0

Suse/ FreeBSD ratio

1

483.22

536.91

1.11

4

852.21

816.27

0.96

16

748.89

639.05

0.85

64

644.45

547.07

0.85

256

273.99

357.09

1.30

MyISAM

threads

FreeBSD 6

Suse 10.0

Suse/ FreeBSD ratio

1

344.72

429.89

1.25

4

531.6

863.23

1.62

16

494.19

537.67

1.09

64

451.72

516.00

1.14

256

215.84

346.65

1.61

Interesting thing with 4-64 threads FreeBSD is better than Suse in InnoDB benchmark. I think it is related to InnoDB’s implementation of syncronious primitives. For MyISAM Suse is stable better.

Vadim’s expertise in LAMP performance and multi-threaded programming help optimize MySQL and InnoDB internals to take full advantage of modern hardware. Oracle Corporation and its predecessors have incorporated Vadim’s source code patches into the mainstream MySQL and InnoDB products.

He also co-authored the book High Performance MySQL: Optimization, Backups, and Replication 3rd Edition.