SlideShare a Scribd company logo
MySQL5.7とMariaDB10.1の
性能比較(簡易)
MySQL Casual Talks Vol.8 (2015/11/20)
自己紹介
• いとう ひろゆき
• サーバ運用・保守が仕事
• MySQL好き、酒好き
• (最近ベンチマークおじさん言われる)
最初に
• http://dimitrik.free.fr/blog/archives/
2015/11/mysql-performance-1m-qps-on-
mixed-oltp_ro-with-mysql-57-ga.html
• https://blog.mariadb.org/maria-10-1-
mysql-5-7-commodity-hardware/
• https://blog.mariadb.org/maria-10-1-
mysql-5-7-commodity-hardware/
• https://blog.mariadb.org/maria-10-1-
mysql-5-7-commodity-hardware/
!?
MySQL5.7とMariaDB10.1の性能比較(簡易)
Commodity Hardware?
• 2CPUぐらいまでOKっぽい
• 自分の観測範囲としてはDB専用サーバなら割
と多い感じ
• 4CPU? 知らない子ですね
ということで
ベンチマーク
環境
• MySQL 5.7.9 and MariaDB10.1.8
• File System
• PCI-E SSD: xfs (discard,nobarrier)
• SAS HDD: ext4 (nobarrier)
• my.cnf
• PCI-E SSDは以下を無効化
• innodb_flush_neighbors
• innodb_read_ahead_threshold
• my.cnfその他
• innodb_io_capacity{,_max}は適宜環境に応
じて設定しています。
• innodb_log_file_size = 1G
• innodb_log_file_in_group = 16
• innodb_buffer_pool_size = 40G
• innodb_buffer_pool_instances = 20
• NUMA関連
• MySQL 5.7はinnodb_numa_interleave
• MariaDB 10.1はnumactl --interleave=all
• CentOS7系のみExecStartで上記を指定
ベンチマーク環境1
• 自作サーバ
• Intel Xeon E5-2630 2.30GHz x 2 (2P12C24T)
• MEM 8GB x 8 = 64GB
• Intel SSD 910 Series 400GB (200GB x 2, RAID0(md0))
• NIC Intel I350
• CentOS 7.1(3.10.0-229.14.1.el7.x86_64)
ベンチマーク環境2
• HP DL360 G8v2
• Intel Xeon E5-2643 v2 3.50GHz x 2 (2P12C24T)
• MEM 8GB x 8 = 64GB
• ioDrive2 785G (Driver version: 3.2.6)
• NIC Intel I350
• CentOS 6.6(2.6.32-504.12.2.el6.x86_64)
ベンチマーク環境3
• HP DL360 G8v2
• Intel Xeon E5-2667 v2 3.30GHz x 2 (2P16C32T)
• MEM 16GB x 8 = 128GB
• SAS HDD 600GB x 4 (RAID10)
• NIC Intel I350
• CentOS 6.7(2.6.32-573.8.1.el6.x86_64)
sysbench 0.5
./bin/sysbench 
--test=./lua/select.lua 
--rand-init=on --db-driver=mysql --oltp-read-only=on 
--rand-type=uniform 
--oltp-tables-count=18 --oltp-table-size=3000000 
--mysql-socket=/var/lib/mysql/mysql.sock 
--mysql-db=sbtest5 
--mysql-user=sbtest --mysql-password=sbtest-pw 
--max-time=60 --max-requests=0 
--num-threads=${thread} 
run
以上を8並列で実行
sysbench 0.5
./bin/sysbench 
--test=./lua/oltp.lua 
--rand-init=on --db-driver=mysql --oltp-read-only=on 
--rand-type=uniform 
--oltp-tables-count=18 --oltp-table-size=3000000 
--oltp_point_selects=1000 --oltp_sum_ranges=0 
--oltp_simple_ranges=0 --oltp_order_ranges=0 
--oltp_distinct_ranges=0 
--mysql-socket=/var/lib/mysql/mysql.sock 
--mysql-db=sbtest5 
--mysql-user=sbtest --mysql-password=sbtest-pw 
--max-time=60 --max-requests=0 
--num-threads=${thread} 
run
以上を8並列で実行
LinkBench
./bin/linkbench -c config/MyConfig.properties 
-D maxtime=3600 -D requests=10000000 -D requesters=64 -r
・64スレッド実行
・3600秒か1スレッドあたり10000000リクエスト処理したら終了
データ量
• sysbench 0.5
• 約13GB
• LinkBench
• 約21GB
ベンチマーク結果
(sysbench)
sysbench 0.5(select.lua)
ベンチマーク環境1
0
42500
85000
127500
170000
number of threads
8 16 32 64 128 256 512 1024 2048 4096
MySQL MariaDB
sysbench 0.5(oltp.lua)
ベンチマーク環境1
0
50000
100000
150000
200000
number of threads
8 16 32 64 128 256 512 1024 2048 4096
MySQL MariaDB
sysbench 0.5(select.lua)
ベンチマーク環境2
0
60000
120000
180000
240000
number of threads
8 16 32 64 128 256 512 1024 2048 4096
MySQL MariaDB
sysbench 0.5(oltp.lua)
ベンチマーク環境2
0
70000
140000
210000
280000
number of threads
8 16 32 64 128 256 512 1024 2048 4096
MySQL MariaDB
sysbench 0.5(select.lua)
ベンチマーク環境3
0
100000
200000
300000
400000
number of threads
8 16 32 64 128 256 512 1024 2048 4096
MySQL MariaDB
sysbench 0.5(oltp.lua)
ベンチマーク環境3
0
100000
200000
300000
400000
number of threads
8 16 32 64 128 256 512 1024 2048 4096
MySQL MariaDB
環境1
select.lua
8 16 32 64 128 256 512 1024 2048 4096
MySQL 79153.3 126892 165671 164200 162301 157935 142907 132039 131837 131738
MariaDB 81818.8 124418 169498 168143 167121 164313 155901 154942 155086 151485
環境1
oltp.lua
8 16 32 64 128 256 512 1024 2048 4096
MySQL 87125.7 136120 176019 174128 172549 166197 148718 140762 144401 162449
MariaDB 64755.2 148221 191003 188706 186705 180805 164041 152048 154381 155051
環境2
select.lua
8 16 32 64 128 256 512 1024 2048 4096
MySQL 97369.3 170491 229283 228034 225891 220770 207285 171191 158682 159935
MariaDB 101870 182925 239949 238332 236169 231718 224791 194868 209760 212766
環境2
oltp.lua
8 16 32 64 128 256 512 1024 2048 4096
MySQL 108830 190365 248722 246606 244531 239035 230940 219336 211711 196712
MariaDB 121951 213392 271949 271133 269413 264823 253655 217833 211657 208552
環境3
select.lua
8 16 32 64 128 256 512 1024 2048 4096
MySQL 105930 183877 311149 313058 309805 306151 303717 304329 302120 297241
MariaDB 107050 189611 319026 320233 318916 316263 313605 299467 305987 295381
環境3
oltp.lua
8 16 32 64 128 256 512 1024 2048 4096
MySQL 109812 217700 328504 339749 337526 337356 333486 332705 331299 332810
MariaDB 119779 240216 362312 363404 363266 362224 360097 358116 351428 338484
• sysbenchによるread only(point select)ではMariaDB
10.1の方がMySQL 5.7より優勢
• 2P12C24T環境ではMySQL, MariaDB共にピーク時から
スレッド数が増えると性能が落ちる傾向がある
• 2P16C32T環境ではMariaDBは同様に性能が落ちる傾向
があるがMySQLはほとんど性能が落ちない
• Dimitriさんのベンチマーク結果のようにコア数が増加す
るにつれてMySQLの方がMariaDBを上回る可能性があ
る(2P20C40Tあたりで拮抗するかも?)
ベンチマーク結果
(LinkBench)
• LinkBenchによるread writeではMySQL 5.7がMariaDBより環境
問わず速い傾向
• 環境2の方が環境3よりスコアが出ているのはSAS HDDのため
fsyncが遅く更新がネックになっていると考えられる。ストレー
ジを同じにすれば環境3が高スコアになる見込み。
MySQL MariaDB
環境1 38828 32039 21%
環境2 60539 53947 12%
環境3 52826 47549 11%
まとめ
• 6コア x 2、8コア x 2の環境の場合
• read onlyならMariaDB 10.1が優勢
• read writeならMySQL 5.7が優勢
• PCI-E SSD, SAS HDD問わずデータ、INDEXが
バッファに全て載る程度であれば同じ傾向
個人的に
• Dimitriさんのブログのベンチマークはコア数が増えてもス
ケールする事をメインに紹介してるようだが、MariaDBのブ
ログの4コアの場合MariaDBが優勢というのは微妙。何故なら
Dimitriさんは過去の発表資料で少ないコア数の場合はMySQL
5.5が最速と書かれてたりします。(そもそもシングルスレッド
性能は4.0とかの方が速かったりするようですが。。。)
• というかreadonlyとか特殊な環境でうちの方が速いとか書い
てて虚しくならんのかと。
• MariaDBのブログに書かれるベンチマーク結果
は環境についての情報が少ないため話半分で見
ています
• ベンチマークは所 ベンチマークです。ワーク
ロードによってはread writeであっても
MariaDBの方が速いパターンもあるかもしれま
せん。きちんと各環境でベンチマークは取得し
ましょう

More Related Content

PPTX
dimSTATから見るベンチマーク
PPTX
POWER8サーバでMariaDBベンチマーク
PDF
dbts2013:MariaDB Galera Cluster 活用例
PDF
ゆるふわMySQLフェイルオーバー
PPTX
MySQL5.6と5.7性能比較
PDF
MySQL 5.7の罠があなたを狙っている
PDF
5.7の次のMySQL
PPTX
MySQL Clusterを運用して10ヶ月間
dimSTATから見るベンチマーク
POWER8サーバでMariaDBベンチマーク
dbts2013:MariaDB Galera Cluster 活用例
ゆるふわMySQLフェイルオーバー
MySQL5.6と5.7性能比較
MySQL 5.7の罠があなたを狙っている
5.7の次のMySQL
MySQL Clusterを運用して10ヶ月間

What's hot (17)

PDF
MySQLおじさんの逆襲
PDF
MySQL Fabricでぼっこぼこにされたはなし
PDF
MySQL 5.7の次のMySQLは
PDF
逝くぞ最新版、罠の貯蔵は十分か
PDF
MySQL Clusterのトラブル事例
PPTX
innodb_thread_concurrencyとtransparent hugepageの影響
PDF
mikasafabric for MySQL
PPTX
MySQL clients
PDF
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
PDF
MHAの次を目指す mikasafabric for MySQL
PDF
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
PDF
MySQL 5.7とレプリケーションにおける改良
PDF
MySQL 5.7 InnoDB 日本語全文検索
PDF
MySQL 5.7にやられないためにおぼえておいてほしいこと
PPTX
mysqlcasual6-fabric
PDF
MySQLレプリケーションあれやこれや
PDF
MHA for MySQLとDeNAのオープンソースの話
MySQLおじさんの逆襲
MySQL Fabricでぼっこぼこにされたはなし
MySQL 5.7の次のMySQLは
逝くぞ最新版、罠の貯蔵は十分か
MySQL Clusterのトラブル事例
innodb_thread_concurrencyとtransparent hugepageの影響
mikasafabric for MySQL
MySQL clients
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MHAの次を目指す mikasafabric for MySQL
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7にやられないためにおぼえておいてほしいこと
mysqlcasual6-fabric
MySQLレプリケーションあれやこれや
MHA for MySQLとDeNAのオープンソースの話
Ad

Similar to MySQL5.7とMariaDB10.1の性能比較(簡易) (20)

PDF
States of Dolphin - MySQL最新技術情報2013秋 -
PDF
LINEのMySQL運用について
PPT
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
PDF
MariaDB 10.3 概要
ODP
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
KEY
Web Operations and Perl kansai.pm#14
PDF
MariaDB Meetup Tokyo 2019 #2
PPT
Handlersocket 20140218
PPTX
PostgreSQL使いのエンジニアから見たMySQL
PPTX
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
PDF
MariaDB meetup Tokyo 2019 #01
PDF
MySQLを割と一人で300台管理する技術
PPT
Handlersocket 20110517
PDF
Maria db
PDF
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
PPTX
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
PPTX
20150630_MySQL勉強会
PPTX
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
PDF
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
PPTX
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
States of Dolphin - MySQL最新技術情報2013秋 -
LINEのMySQL運用について
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
MariaDB 10.3 概要
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
Web Operations and Perl kansai.pm#14
MariaDB Meetup Tokyo 2019 #2
Handlersocket 20140218
PostgreSQL使いのエンジニアから見たMySQL
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
MariaDB meetup Tokyo 2019 #01
MySQLを割と一人で300台管理する技術
Handlersocket 20110517
Maria db
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
20150630_MySQL勉強会
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
Ad

MySQL5.7とMariaDB10.1の性能比較(簡易)