There are a lot of talks around new coming Ubuntu 6.06, so I decided to make quick benchmarks.
I used sysbench 0.4.6 oltp-read-only workload with 1000000 rows against InnoDB and MyISAM tables.
Such workload is CPU-bound and allows to compare CPU / OS if we are using the same version of MySQL.
So I used MySQL 5.0.22 and my box Dual Core Athlon 3800+, 1Gb of RAM.
For comparison I tested the same workload on my primary Suse 10.0.
Here are results (in transactions per sec, more is better):
InnoDB | |||
threads | Ubuntu 6.06 | Suse 10.0 | Suse/ Ubuntu ratio |
1 | 478.66 | 536.91 | 1.12 |
4 | 870.50 | 816.27 | 0.94 |
16 | 582.57 | 639.05 | 1.10 |
64 | 522.04 | 547.07 | 1.05 |
256 | 344.30 | 357.09 | 1.04 |
MyISAM | |||
threads | Ubuntu 6.06 | Suse 10.0 | Suse / Ubuntu ration |
1 | 466.13 | 429.89 | 0.92 |
4 | 765.19 | 863.23 | 1.13 |
16 | 509.32 | 537.67 | 1.06 |
64 | 495.97 | 516.00 | 1.04 |
256 | 339.01 | 346.65 | 1.02 |
In general Suse 10.0 looks better, though the difference is not significant.
I appologize for offtopic 🙂 I tried sysbench with it’s oltp test – 1st time ran with 10 concurent threads on 10K record table (by default), 2nd time – 100 threads on 100M records, the result was only 30% slower 2nd time, how’s that colud be?
/* original idea was to check the performance of myisam vs innodb 🙂 /*
I recommend to run sysbench in such mode, for CPU-bound (10K records):
1. warmup ~3-5 min (–max-time=180 –max-requests=0)
2. several runs by 1-2 min – and than take average or maximum result
for 100M records you need much more warmup (about 15min) and longer runs – 5-10 min each.
Comparison results on cold database makes no sense.