SlideShare a Scribd company logo
MySQL5.6、5.7
性能比較
MyNA会 2015年4月
2015/04/22
誰
❖ いとう ひろゆき
❖ サーバ運用/保守が仕事
❖ ネットワークからOS、ミドルウェアまでアプリケーシ
ョン以外はなんでも面倒を見ないといけない(程度の差
はあります)
❖ MySQL好き。酒好き。
比較内容
❖ 秒間接続数
❖ sysbenchのpoint selectとoltp (全部メモリに載るデータ
量)
❖ tpcc-mysql (i/oバウンド warehouse 1000)
❖ tpcc-mysql以外は3回実行した平均値
❖ 更新が行われるベンチマークはバイナリログ有効
ベンチマーク環境
❖ ベンチマークサーバ
❖ HP DL360p G8v2
❖ CPU Intel Xeon E5-2643 v2 @ 3.50GHz (1CPU = 6Core)
❖ MEM 8GB x 4 = 32GB (DDR3 1866 MHz)
❖ ioDrive2 785GB
❖ Driver version: 3.2.6 build 1212, Firmware v7.1.15, rev 110356
Public
❖ NIC Intel I350
❖ OS CentOS 6.6(2.6.32-504.12.2.el6.x86_64)
❖ ベンチマーククライアント
❖ HP DL360 G7
❖ CPU Intel Xeon L5640 @ 2.27GHz (2CPU = 6Core x 2)
❖ MEM 4GB x 12 = 48GB (DDR3 1333 MHz)
❖ NIC Broadcom NetXtreme II BCM5709
❖ OS CentOS 5.9(2.6.18-348.16.1.el5)
❖ MySQLバージョン(rpm版使用)
❖ 5.7.7 RC 及び 5.6.24
❖ ベンチマークツール
❖ sysbench 0.4.12
❖ sysbench 0.5
❖ tpcc mysql
❖ ファイルシステム(ioDrive2)
❖ ext4 (マウントオプション defaults,discard,noauto)
❖ nobarrierはお好みでどうぞ(ベンチスコア的には差がほぼ出ない)
❖ MySQLの設定について
❖ サバフェスの設定がベースでバイナリログ有効
❖ sync_binlog = 1
❖ master_info_repository = TABLE
❖ jemallocをmalloc-libで指定
❖ グラフの補足
❖ p_s ON DEFはperformance_schema = ONでsetup_instruments
テーブルはMySQL起動時からそのまま
❖ p_s ON ALL NOはperformance_schema = ONで
setup_intrumentsテーブルのENABLEDが全部NO
❖ p_s OFFはperformance_schema = OFF
秒間接続数
❖ 使用ツールはsysbench 0.4.12
❖ ソースいじって接続/切断のみ行う(sb_oltp.cの変更)
❖ 5.7のread only transactionによる影響を避けるため
❖ 実行コマンド (いくつかのオプションは意味なし)
/usr/local/sysbench-0.4.12-conn/bin/sysbench 
--test=oltp --oltp-table-size=4500000 
--max-requests=10000000 --mysql-table-engine=innodb 
--db-ps-mode=disable --mysql-engine-trx=yes 
--oltp-read-only --oltp-skip-trx 
--oltp-dist-type=special --oltp-connect-delay=0 
--oltp-reconnect-mode=query --db-driver=mysql 
--mysql-user=sbtest 
--mysql-password=sbtest-pw 
--mysql-db=sbtest 
--mysql-host=192.168.1.201 
--mysql-port=3306 
--num-threads=100 
run
p_s ON DEF p_s ON ALL NO p_s OFF
5.7.7 rc 65736.14 69510.64 70812.38
5.6.24 45844.23 46250.22 54732.32
65736.14
69510.64 70812.38
45844.23 46250.22
54732.32
0.00
10000.00
20000.00
30000.00
40000.00
50000.00
60000.00
70000.00
80000.00
connection/sec
結果
❖ 5.6と比較して5.7は1.29倍に向上
❖ performance_schemaが有効でも性能低下が小さくなっ
た
❖ Another reason to disable performance schema と5.6の
頃は言われてたけどperformance schemaを有効にして
も十分に性能が出るように
❖ http://yoshinorimatsunobu.blogspot.jp/2013/08/another-
reason-to-disable-performance.html
sysbenchのpoint selectとoltp
❖ 使用ツールはsysbench 0.5
❖ innodb_adaptive_hash_index(AHI)のon/offでも取得
❖ 実行コマンド (--oltp-read-onlyのon/offで切り替え)
/usr/local/sysbench/bin/sysbench 
--test=/usr/local/sysbench/lua/{select.lua,oltp.lua} 
--rand-init=on --db-driver=mysql 
--oltp-table-size=3000000 --rand-type=uniform 
--oltp-read-only=on 
--oltp-tables-count=16 
--oltp_range_size=10 
--mysql-host=192.168.1.201 
--mysql-db=sbtest5 
--mysql-user=sbtest 
--mysql-password=sbtest-pw 
--max-time=60 
--max-requests=0 
--num-threads=$thread 
run
16 32 64 128 256 512 1024 2048
5.7.7 RC AHI OFF 93230.57 134177.31 155719.92 154230.98 152003.94 142739.32 134340.30 133880.94
5.7.7 RC AHI ON 87251.97 137263.40 161623.94 160893.68 158637.70 150716.10 140546.41 139165.31
5.6.24 AHI OFF 97616.61 144368.07 168376.69 167154.31 165216.11 162568.52 158373.95 153905.08
5.6.24 AHI ON 100025.28 145748.47 172930.27 171950.26 170353.84 167765.84 162946.05 159623.20
0.00
20000.00
40000.00
60000.00
80000.00
100000.00
120000.00
140000.00
160000.00
180000.00
200000.00
point select/sec(p_s OFF, AHI OFF/ON)
16 32 64 128 256 512 1024 2048
5.7.7 RC AHI OFF 92086.55 130876.14 153566.93 152308.99 149976.94 141061.57 132981.85 132406.67
5.7.7 RC AHI ON 91214.45 133418.87 158803.59 158084.53 156000.35 147968.10 138302.29 137188.81
5.6.24 AHI OFF 95474.05 142081.07 165413.99 163975.11 162374.72 159555.46 155139.21 152374.50
5.6.24 AHI ON 94232.55 143946.65 170104.02 168966.97 167369.97 164885.78 161088.61 156426.85
0.00
20000.00
40000.00
60000.00
80000.00
100000.00
120000.00
140000.00
160000.00
180000.00
200000.00
point select/sec(p_s ON ALL NO, AHI OFF/ON)
16 32 64 128 256 512 1024 2048
5.7.7 RC AHI OFF 4764.07 6833.42 8172.77 8259.21 8124.87 7742.40 7383.91 7346.33
5.7.7 RC AHI ON 4807.67 6934.68 8379.94 8539.08 8416.65 8089.83 7687.28 7822.40
5.6.24 AHI OFF 5037.95 7280.28 8935.29 9160.34 9023.46 8611.28 8020.99 7671.76
5.6.24 AHI ON 5097.87 7283.62 8955.68 9249.72 9126.06 8796.68 8235.72 7836.46
0.00
1000.00
2000.00
3000.00
4000.00
5000.00
6000.00
7000.00
8000.00
9000.00
10000.00
oltp read only(p_s OFF, AHI OFF/ON)
16 32 64 128 256 512 1024 2048
5.7.7 RC AHI OFF 4782.36 6928.01 8069.38 8162.27 8042.56 7651.16 7303.08 7261.21
5.7.7 RC AHI ON 4633.42 6924.78 8207.64 8324.11 8225.11 7958.90 7742.86 7676.04
5.6.24 AHI OFF 5000.51 7329.14 8773.49 8993.02 8836.51 8452.61 7866.79 7580.31
5.6.24 AHI ON 4715.48 7127.48 8851.58 9055.14 8935.24 8612.84 8124.00 7717.21
0.00
1000.00
2000.00
3000.00
4000.00
5000.00
6000.00
7000.00
8000.00
9000.00
10000.00
oltp read only(p_s ON ALL NO AHI OFF/ON)
16 32 64 128 256 512 1024 2048
5.7.7 RC AHI OFF 3312.25 4822.17 5612.62 5737.13 5744.13 5785.36 5820.95 5801.96
5.7.7 RC AHI ON 3203.87 4864.01 5696.03 5867.22 5858.92 5900.85 5937.38 5912.34
5.6.24 AHI OFF 3643.40 5086.16 6066.08 6274.88 6310.38 6329.28 6277.22 5862.39
5.6.24 AHI ON 3578.94 5119.49 6147.50 6399.06 6415.58 6469.96 6429.96 6015.50
0.00
1000.00
2000.00
3000.00
4000.00
5000.00
6000.00
7000.00
oltp read write(p_s OFF, AHI OFF/ON)
16 32 64 128 256 512 1024 2048
5.7.7 RC AHI OFF 3221.69 4766.49 5518.11 5636.35 5648.45 5698.23 5739.69 5721.01
5.7.7 RC AHI ON 3404.34 4854.30 5697.94 5830.58 5835.69 5864.50 5879.40 5810.05
5.6.24 AHI OFF 3462.21 5043.21 6005.48 6220.22 6203.31 6260.86 6214.00 5835.05
5.6.24 AHI ON 3444.42 5022.39 6046.22 6298.78 6308.85 6361.26 6320.70 5917.57
0.00
1000.00
2000.00
3000.00
4000.00
5000.00
6000.00
7000.00
oltp read write(p_s ON ALL NO, AHI OFF/ON)
結果
❖ 5.7より5.6の方が良い結果に
❖ 5.7の方が良いというベンチ結果も見かけるのでコア数に
よっては5.7が逆転するかもしれません。
❖ 5.6も5.7もperformance schemaの性能への影響は軽微
❖ メモリ使用率の増加と秒間接続数の減少を許容出来るなら有
効にしてsetup_instruments のENABLEDを全部NOにするの
もあり
❖ AHIは有効な方が性能は良い
tpcc mysql
❖ 使用ツールはtpcc mysql
❖ innodb_adaptive_hash_index(AHI)のon/offでも取得
❖ warehouse数は1000、データ量は約84GB
❖ 実行コマンド
./tpcc_start 
-h 192.168.1.201 
-d tpcc 
-u tpcc 
-p tpcc-pw 
-w 1000 
-c 32
-r 0 
-l 900 
-i 60
p_s OFF p_s ON p_s OFF iblog 2G
5.7.7 RC AHI OFF 49567.20 49311.80 43501.87
5.7.7 RC AHI ON 46238.93 46712.73 41631.40
5.6.24 AHI OFF 44180.40 44046.87 37641.67
5.6.24 AHI ON 41281.13 41748.27 35582.67
49567.20 49311.80
43501.87
46238.93 46712.73
41631.40
44180.40 44046.87
37641.67
41281.13 41748.27
35582.67
0.00
10000.00
20000.00
30000.00
40000.00
50000.00
60000.00
tpcc mysql
結果
❖ 5.6より5.7の方が1.12倍程良い結果に
❖ 全てバッファに載る時と異なりAHIは無効な方がスコア
上昇
❖ 5.6の設定をほぼそのまま流用しているので5.7で挙動の
変わったinnodb_io_capacityや追加された
innodb_page_cleanersを調整したりするともっと性能向
上するかも
まとめ
❖ 秒間接続数については5.6と比較し5.7でかなり良くな
り、performance schemaが有効であっても性能低下が
大幅減少
❖ 全てのデータ・インデックスがバッファに載る環境下で
は1CPU6Core12Threadだと5.6の方が優勢
❖ i/oヘビーな状態では5.7が優勢でAHIはOFFの方が優勢
今後やりたい事
❖ 2CPU12Core24Threadの場合に傾向が変わるか試した
い
❖ LinkBenchも試してみたい
❖ 5.7でtpcc mysqlのスコアがどこまで伸ばせるか試してみ
たい
おわり

More Related Content

MySQL5.6と5.7性能比較

  • 2. 誰 ❖ いとう ひろゆき ❖ サーバ運用/保守が仕事 ❖ ネットワークからOS、ミドルウェアまでアプリケーシ ョン以外はなんでも面倒を見ないといけない(程度の差 はあります) ❖ MySQL好き。酒好き。
  • 3. 比較内容 ❖ 秒間接続数 ❖ sysbenchのpoint selectとoltp (全部メモリに載るデータ 量) ❖ tpcc-mysql (i/oバウンド warehouse 1000) ❖ tpcc-mysql以外は3回実行した平均値 ❖ 更新が行われるベンチマークはバイナリログ有効
  • 5. ❖ ベンチマークサーバ ❖ HP DL360p G8v2 ❖ CPU Intel Xeon E5-2643 v2 @ 3.50GHz (1CPU = 6Core) ❖ MEM 8GB x 4 = 32GB (DDR3 1866 MHz) ❖ ioDrive2 785GB ❖ Driver version: 3.2.6 build 1212, Firmware v7.1.15, rev 110356 Public ❖ NIC Intel I350 ❖ OS CentOS 6.6(2.6.32-504.12.2.el6.x86_64) ❖ ベンチマーククライアント ❖ HP DL360 G7 ❖ CPU Intel Xeon L5640 @ 2.27GHz (2CPU = 6Core x 2) ❖ MEM 4GB x 12 = 48GB (DDR3 1333 MHz) ❖ NIC Broadcom NetXtreme II BCM5709 ❖ OS CentOS 5.9(2.6.18-348.16.1.el5)
  • 6. ❖ MySQLバージョン(rpm版使用) ❖ 5.7.7 RC 及び 5.6.24 ❖ ベンチマークツール ❖ sysbench 0.4.12 ❖ sysbench 0.5 ❖ tpcc mysql ❖ ファイルシステム(ioDrive2) ❖ ext4 (マウントオプション defaults,discard,noauto) ❖ nobarrierはお好みでどうぞ(ベンチスコア的には差がほぼ出ない)
  • 7. ❖ MySQLの設定について ❖ サバフェスの設定がベースでバイナリログ有効 ❖ sync_binlog = 1 ❖ master_info_repository = TABLE ❖ jemallocをmalloc-libで指定
  • 8. ❖ グラフの補足 ❖ p_s ON DEFはperformance_schema = ONでsetup_instruments テーブルはMySQL起動時からそのまま ❖ p_s ON ALL NOはperformance_schema = ONで setup_intrumentsテーブルのENABLEDが全部NO ❖ p_s OFFはperformance_schema = OFF
  • 10. ❖ 使用ツールはsysbench 0.4.12 ❖ ソースいじって接続/切断のみ行う(sb_oltp.cの変更) ❖ 5.7のread only transactionによる影響を避けるため ❖ 実行コマンド (いくつかのオプションは意味なし) /usr/local/sysbench-0.4.12-conn/bin/sysbench --test=oltp --oltp-table-size=4500000 --max-requests=10000000 --mysql-table-engine=innodb --db-ps-mode=disable --mysql-engine-trx=yes --oltp-read-only --oltp-skip-trx --oltp-dist-type=special --oltp-connect-delay=0 --oltp-reconnect-mode=query --db-driver=mysql --mysql-user=sbtest --mysql-password=sbtest-pw --mysql-db=sbtest --mysql-host=192.168.1.201 --mysql-port=3306 --num-threads=100 run
  • 11. p_s ON DEF p_s ON ALL NO p_s OFF 5.7.7 rc 65736.14 69510.64 70812.38 5.6.24 45844.23 46250.22 54732.32 65736.14 69510.64 70812.38 45844.23 46250.22 54732.32 0.00 10000.00 20000.00 30000.00 40000.00 50000.00 60000.00 70000.00 80000.00 connection/sec
  • 12. 結果 ❖ 5.6と比較して5.7は1.29倍に向上 ❖ performance_schemaが有効でも性能低下が小さくなっ た ❖ Another reason to disable performance schema と5.6の 頃は言われてたけどperformance schemaを有効にして も十分に性能が出るように ❖ http://yoshinorimatsunobu.blogspot.jp/2013/08/another- reason-to-disable-performance.html
  • 14. ❖ 使用ツールはsysbench 0.5 ❖ innodb_adaptive_hash_index(AHI)のon/offでも取得 ❖ 実行コマンド (--oltp-read-onlyのon/offで切り替え) /usr/local/sysbench/bin/sysbench --test=/usr/local/sysbench/lua/{select.lua,oltp.lua} --rand-init=on --db-driver=mysql --oltp-table-size=3000000 --rand-type=uniform --oltp-read-only=on --oltp-tables-count=16 --oltp_range_size=10 --mysql-host=192.168.1.201 --mysql-db=sbtest5 --mysql-user=sbtest --mysql-password=sbtest-pw --max-time=60 --max-requests=0 --num-threads=$thread run
  • 15. 16 32 64 128 256 512 1024 2048 5.7.7 RC AHI OFF 93230.57 134177.31 155719.92 154230.98 152003.94 142739.32 134340.30 133880.94 5.7.7 RC AHI ON 87251.97 137263.40 161623.94 160893.68 158637.70 150716.10 140546.41 139165.31 5.6.24 AHI OFF 97616.61 144368.07 168376.69 167154.31 165216.11 162568.52 158373.95 153905.08 5.6.24 AHI ON 100025.28 145748.47 172930.27 171950.26 170353.84 167765.84 162946.05 159623.20 0.00 20000.00 40000.00 60000.00 80000.00 100000.00 120000.00 140000.00 160000.00 180000.00 200000.00 point select/sec(p_s OFF, AHI OFF/ON)
  • 16. 16 32 64 128 256 512 1024 2048 5.7.7 RC AHI OFF 92086.55 130876.14 153566.93 152308.99 149976.94 141061.57 132981.85 132406.67 5.7.7 RC AHI ON 91214.45 133418.87 158803.59 158084.53 156000.35 147968.10 138302.29 137188.81 5.6.24 AHI OFF 95474.05 142081.07 165413.99 163975.11 162374.72 159555.46 155139.21 152374.50 5.6.24 AHI ON 94232.55 143946.65 170104.02 168966.97 167369.97 164885.78 161088.61 156426.85 0.00 20000.00 40000.00 60000.00 80000.00 100000.00 120000.00 140000.00 160000.00 180000.00 200000.00 point select/sec(p_s ON ALL NO, AHI OFF/ON)
  • 17. 16 32 64 128 256 512 1024 2048 5.7.7 RC AHI OFF 4764.07 6833.42 8172.77 8259.21 8124.87 7742.40 7383.91 7346.33 5.7.7 RC AHI ON 4807.67 6934.68 8379.94 8539.08 8416.65 8089.83 7687.28 7822.40 5.6.24 AHI OFF 5037.95 7280.28 8935.29 9160.34 9023.46 8611.28 8020.99 7671.76 5.6.24 AHI ON 5097.87 7283.62 8955.68 9249.72 9126.06 8796.68 8235.72 7836.46 0.00 1000.00 2000.00 3000.00 4000.00 5000.00 6000.00 7000.00 8000.00 9000.00 10000.00 oltp read only(p_s OFF, AHI OFF/ON)
  • 18. 16 32 64 128 256 512 1024 2048 5.7.7 RC AHI OFF 4782.36 6928.01 8069.38 8162.27 8042.56 7651.16 7303.08 7261.21 5.7.7 RC AHI ON 4633.42 6924.78 8207.64 8324.11 8225.11 7958.90 7742.86 7676.04 5.6.24 AHI OFF 5000.51 7329.14 8773.49 8993.02 8836.51 8452.61 7866.79 7580.31 5.6.24 AHI ON 4715.48 7127.48 8851.58 9055.14 8935.24 8612.84 8124.00 7717.21 0.00 1000.00 2000.00 3000.00 4000.00 5000.00 6000.00 7000.00 8000.00 9000.00 10000.00 oltp read only(p_s ON ALL NO AHI OFF/ON)
  • 19. 16 32 64 128 256 512 1024 2048 5.7.7 RC AHI OFF 3312.25 4822.17 5612.62 5737.13 5744.13 5785.36 5820.95 5801.96 5.7.7 RC AHI ON 3203.87 4864.01 5696.03 5867.22 5858.92 5900.85 5937.38 5912.34 5.6.24 AHI OFF 3643.40 5086.16 6066.08 6274.88 6310.38 6329.28 6277.22 5862.39 5.6.24 AHI ON 3578.94 5119.49 6147.50 6399.06 6415.58 6469.96 6429.96 6015.50 0.00 1000.00 2000.00 3000.00 4000.00 5000.00 6000.00 7000.00 oltp read write(p_s OFF, AHI OFF/ON)
  • 20. 16 32 64 128 256 512 1024 2048 5.7.7 RC AHI OFF 3221.69 4766.49 5518.11 5636.35 5648.45 5698.23 5739.69 5721.01 5.7.7 RC AHI ON 3404.34 4854.30 5697.94 5830.58 5835.69 5864.50 5879.40 5810.05 5.6.24 AHI OFF 3462.21 5043.21 6005.48 6220.22 6203.31 6260.86 6214.00 5835.05 5.6.24 AHI ON 3444.42 5022.39 6046.22 6298.78 6308.85 6361.26 6320.70 5917.57 0.00 1000.00 2000.00 3000.00 4000.00 5000.00 6000.00 7000.00 oltp read write(p_s ON ALL NO, AHI OFF/ON)
  • 21. 結果 ❖ 5.7より5.6の方が良い結果に ❖ 5.7の方が良いというベンチ結果も見かけるのでコア数に よっては5.7が逆転するかもしれません。 ❖ 5.6も5.7もperformance schemaの性能への影響は軽微 ❖ メモリ使用率の増加と秒間接続数の減少を許容出来るなら有 効にしてsetup_instruments のENABLEDを全部NOにするの もあり ❖ AHIは有効な方が性能は良い
  • 23. ❖ 使用ツールはtpcc mysql ❖ innodb_adaptive_hash_index(AHI)のon/offでも取得 ❖ warehouse数は1000、データ量は約84GB ❖ 実行コマンド ./tpcc_start -h 192.168.1.201 -d tpcc -u tpcc -p tpcc-pw -w 1000 -c 32 -r 0 -l 900 -i 60
  • 24. p_s OFF p_s ON p_s OFF iblog 2G 5.7.7 RC AHI OFF 49567.20 49311.80 43501.87 5.7.7 RC AHI ON 46238.93 46712.73 41631.40 5.6.24 AHI OFF 44180.40 44046.87 37641.67 5.6.24 AHI ON 41281.13 41748.27 35582.67 49567.20 49311.80 43501.87 46238.93 46712.73 41631.40 44180.40 44046.87 37641.67 41281.13 41748.27 35582.67 0.00 10000.00 20000.00 30000.00 40000.00 50000.00 60000.00 tpcc mysql
  • 25. 結果 ❖ 5.6より5.7の方が1.12倍程良い結果に ❖ 全てバッファに載る時と異なりAHIは無効な方がスコア 上昇 ❖ 5.6の設定をほぼそのまま流用しているので5.7で挙動の 変わったinnodb_io_capacityや追加された innodb_page_cleanersを調整したりするともっと性能向 上するかも
  • 26. まとめ ❖ 秒間接続数については5.6と比較し5.7でかなり良くな り、performance schemaが有効であっても性能低下が 大幅減少 ❖ 全てのデータ・インデックスがバッファに載る環境下で は1CPU6Core12Threadだと5.6の方が優勢 ❖ i/oヘビーな状態では5.7が優勢でAHIはOFFの方が優勢