狠狠撸
Submit Search
惭测厂蚕尝5.7と惭补谤颈补顿叠10.1の性能比较(简易)
?
16 likes
?
24,642 views
H
hiroi10
Follow
惭测厂蚕尝5.7と惭补谤颈补顿叠10.1の性能比较(简易)
Read less
Read more
1 of 35
More Related Content
惭测厂蚕尝5.7と惭补谤颈补顿叠10.1の性能比较(简易)
1.
MySQL5.7とMariaDB10.1の 性能比較(簡易) MySQL Casual Talks
Vol.8 (2015/11/20)
2.
自己紹介 ? いとう ひろゆき ?
サーバ運用?保守が仕事 ? MySQL好き、酒好き ? (最近ベンチマークおじさん言われる)
3.
最初に
4.
? http://dimitrik.free.fr/blog/archives/ 2015/11/mysql-performance-1m-qps-on- mixed-oltp_ro-with-mysql-57-ga.html
5.
? https://blog.mariadb.org/maria-10-1- mysql-5-7-commodity-hardware/
6.
? https://blog.mariadb.org/maria-10-1- mysql-5-7-commodity-hardware/
7.
? https://blog.mariadb.org/maria-10-1- mysql-5-7-commodity-hardware/ !?
9.
Commodity Hardware? ? 2CPUぐらいまでOKっぽい ?
自分の観測範囲としてはDB専用サーバなら割 と多い感じ ? 4CPU? 知らない子ですね
10.
ということで ベンチマーク 環境
11.
? 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_?ush_neighbors ? innodb_read_ahead_threshold
12.
? my.cnfその他 ? innodb_io_capacity{,_max}は適宜環境に応 じて設定しています。 ?
innodb_log_?le_size = 1G ? innodb_log_?le_in_group = 16 ? innodb_buffer_pool_size = 40G ? innodb_buffer_pool_instances = 20
13.
? NUMA関連 ? MySQL
5.7はinnodb_numa_interleave ? MariaDB 10.1はnumactl --interleave=all ? CentOS7系のみExecStartで上記を指定
14.
ベンチマーク環境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)
15.
ベンチマーク環境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)
16.
ベンチマーク環境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)
17.
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並列で実行
18.
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並列で実行
19.
LinkBench ./bin/linkbench -c config/MyConfig.properties
-D maxtime=3600 -D requests=10000000 -D requesters=64 -r ?64スレッド実行 ?3600秒か1スレッドあたり10000000リクエスト処理したら終了
20.
データ量 ? sysbench 0.5 ?
約13GB ? LinkBench ? 約21GB
21.
ベンチマーク結果 (sysbench)
22.
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
23.
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
24.
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
25.
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
26.
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
27.
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
28.
環境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
29.
? sysbenchによるread only(point
select)ではMariaDB 10.1の方がMySQL 5.7より優勢 ? 2P12C24T環境ではMySQL, MariaDB共にピーク時から スレッド数が増えると性能が落ちる傾向がある ? 2P16C32T環境ではMariaDBは同様に性能が落ちる傾向 があるがMySQLはほとんど性能が落ちない ? Dimitriさんのベンチマーク結果のようにコア数が増加す るにつれてMySQLの方がMariaDBを上回る可能性があ る(2P20C40Tあたりで拮抗するかも?)
30.
ベンチマーク結果 (LinkBench)
31.
? 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%
32.
まとめ
33.
? 6コア x
2、8コア x 2の環境の場合 ? read onlyならMariaDB 10.1が優勢 ? read writeならMySQL 5.7が優勢 ? PCI-E SSD, SAS HDD問わずデータ、INDEXが バッファに全て載る程度であれば同じ傾向
34.
個人的に ? Dimitriさんのブログのベンチマークはコア数が増えてもス ケールする事をメインに紹介してるようだが、MariaDBのブ ログの4コアの場合MariaDBが優勢というのは微妙。何故なら Dimitriさんは過去の発表資料で少ないコア数の場合はMySQL 5.5が最速と書かれてたりします。(そもそもシングルスレッド 性能は4.0とかの方が速かったりするようですが。。。) ? というかreadonlyとか特殊な環境でうちの方が速いとか書い てて虚しくならんのかと。
35.
? MariaDBのブログに書かれるベンチマーク結果 は環境についての情報が少ないため話半分で見 ています ? ベンチマークは所
ベンチマークです。ワーク ロードによってはread writeであっても MariaDBの方が速いパターンもあるかもしれま せん。きちんと各環境でベンチマークは取得し ましょう