Rebuilding MariaDB 5.2.5 MySQL RPM from CentOS / Redhat source RPM was brought up as a topic of discussion by Floren (TECK) on vBulletin.com tech support forums. It’s not something I do as I mainly work with official MySQL RPMs as it’s much easier to install and upgrade MySQL.
Floren said that the MariaDB 5.2.5 CentOS / Redhat RPMs didn’t compile with a few options which may help with performance – –with-fast-mutexes and –with-aria-tmp-tables. So I decided to test out his claims by downloading MariaDB 5.2.5 source RPM package for CentOS 5 / Redhat 5 amd64 and setting up a RPM building environment on my local virtualized CentOS 5.5 64bit test server. I rebuilt two different MariaDB 5.2.5 RPM packages.
RPM Package 1: MariaDB 5.2.5 RPM custom rpm with additional compile options, –with-fast-mutexes, –with-aria-tmp-tables, –with-atomic-ops=smp (recommended by Floren) and left GCC v4.1.2-50 compiler –mtune option set as generic same as official RPM.
RPM Package 2: MariaDB 5.2.5 RPM custom rpm optimized for Intel with additional compile options, –with-fast-mutexes, –with-aria-tmp-tables, –with-atomic-ops=smp and GCC v4.1.2-50 compiler –mtune option set as nocona.
As I still have access to the Quad Intel Xeon L7555 1.86Ghz, 64GB DDR3 memory server, I decided to run the same test configuration setup for Sysbench v0.4.1.2 to compare with the results of MariaDB 5.2.5 official CentOS 64bit RPM, Percona 5.5.10-20.1 and MySQL 5.5.11 tests here.
Server Hardware Specifications:
- Quad Intel Xeon Nehalem-EX L7555 Octo-Core 1.86GHz (4x8x2 = 64 cpu cores)
- 64GB RAM DDR3 (16x 4GB DDR3)
- Supermicro X8QB6
- 6 x 64GB Intel X25-E Extreme SSD (SSDSA2SH064G1GC) – RAID 10
- Adaptec 5805 SAS/SATA PCI-E Raid controller 512 MB cache + BBU Write Back cache
- CentOS 5.5 64bit with WHM/Cpanel
- 2.6.18-194.32.1.el5 SMP Kernel
Below are two sets of charts where horizontal axis is the number of cpu cores/threads tested. I left out MyISAM read/write results as pretty much pointless due to table locking:
- Sysbench MyISAM read only results for all MySQL versions
- Sysbench InnoDB read only results for all MySQL versions
- Sysbench InnoDB read/write results for all MySQL versions