Bug #40718 performance regression in 5.1/6.0 vs 5.0 in sysbench OLTP_RO/RW tests
Submitted: 13 Nov 2008 21:20 Modified: 13 Mar 2014 17:48
Reporter: Alexey Stroganov Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server Severity:S5 (Performance)
Version:5.1.30-release OS:Linux (SuSE 10)
Assigned to: CPU Architecture:Any

[13 Nov 2008 21:20] Alexey Stroganov
Description:
sysbench OLTP_RO/RW results obtained for 5.0.70,5.1.30,6.0.8 show that there is scalability problem in 5.1/6.0 servers when number of threads is bigger than 16.

Tests were run on box with 8 Cores Xeon E5345@2.33GHz, 16 GB RAM, SLES 10, kernel 2.6.16.21-0.8-smp, ext3, RAID 10 

# Test: OLTP_RW
#                  5.0.70              5.1.30          6.0.8
# Thread       INNODB   MYISAM    INNODB   MYISAM   INNODB  MYISAM
         4    1470.31   445.82   1542.00   430.95  1423.40  402.70
        16    1178.43   445.16   1141.72   434.07  1095.46  399.26
        64     908.71   425.95    702.14   425.00   741.03  394.34
       128     884.21   425.27    723.79   421.60   806.41  392.19
       256     587.87   420.84    859.27   422.82   907.35  390.78

# Test: OLTP_RO
#                   5.0.70          5.1.30               6.0.8
# Thread       INNODB   MYISAM    INNODB   MYISAM   INNODB  MYISAM   .
         4    2336.25  1521.62   2160.60  1786.66  1888.82 1542.03
        16    1607.39  1326.62   1641.58  1264.85  1613.59 1129.71
        64    1966.02  1454.23   1111.94  1087.90  1069.50 1118.89
       128    1803.99  1639.08   1038.17  1194.25  1082.61 1021.47
       256    1610.24  1674.16   1136.98  1273.71  1242.43 1080.94

How to repeat:
Run sysbench-0.4.8 as following:

OLTP_RO

sysbench-0.4.8 --num-threads=(4,16...) --test=oltp --oltp-table-size=1000000 --oltp-dist-type=uniform --oltp-table-name=sbtest --init-rng=on --max-requests=0 --max-time=300 --mysql-host=127.0.0.1 --mysql-user=root --mysql-port=3306 --mysql-db=sbtest --mysql-table-engine=(MYISAM|INNODB) --oltp-read-only=on run

OLTP_RW

sysbench-0.4.8 --num-threads=(4,16,...) --test=oltp --oltp-table-size=1000000 --oltp-dist-type=uniform --oltp-table-name=sbtest --init-rng=on --max-requests=0 --max-time=300 --mysql-host=127.0.0.1 --mysql-user=root --mysql-port=3306 --mysql-db=sbtest --mysql-table-engine=(MYISAM|INNODB) --oltp-read-only=off run
[2 Dec 2008 2:14] Alexey Stroganov
Reran the tests on the same box but OS is RHEL 5.2:

# Server 1 - 5.0.70-enterprise
# Server 2 - 5.1.30-enterprise-commercial-advanced
#
# Results are average values
#
#                     Server 1          Server 2
# Thread       INNODB   MYISAM   INNODB   MYISAM
          4   2028.07  1490.84  2098.58  1499.12
         16   3682.74  2223.20  3512.03  2244.51
         64   3429.13  2117.22  3315.55  2184.53
        128   3117.63  2093.17  3095.50  2140.47
        256   2656.17  2108.60  2789.48  2249.01

There are no drops after 16 threads and whole results looks much better. Need to recheck with the latest SLES release.
[2 Dec 2008 2:15] Alexey Stroganov
In previous comment test was OLTP_RO.
[13 Mar 2014 17:48] Sveta Smirnova
Version 5.1 is not supported anymore.

Additionally many regression performance bug reports were fixed last years, so closing this one as "Can't repeat". If you are able to repeat similar regression with newer version feel free to open new report and provide options you used to start MySQL server.