Weitere ähnliche Inhalte Ähnlich wie サバフェス上位入賞者にみる ioMemory×MySQL 最新チューニング教えます (20) サバフェス上位入賞者にみる ioMemory×MySQL 最新チューニング教えます1. Copyright IDC Frontier Inc. All rights reserved.
1
db tech showcase Tokyo 2015
サバフェス上位入賞者にみる
ioMemory×MySQL
最新チューニング教えます
IDCフロンティア
ソリューションアーキテクト 藤城 拓哉
@tafujish
2015年06月10日
D17:MySQL/Flash
2. (C) IDC Frontier Inc. All Rights
Reserved.
自己紹介
■業務
クラウド前
Unix/Linuxシステム管理者
クラウド後
プラットフォームの
設計、構築、運用
テクニカルサポート
ソリューションアーキテクト今ココ
■趣味
自宅サーバー/自宅HPC
ベンチマーク
3. (C) IDC Frontier Inc. All Rights
Reserved.
インフラのすべてが揃うIDCフロンティア
Yahoo! JAPANのグループ企業であるIDCフロンティアは、
クラウドサービス(IaaS)、データ分析プラットフォーム、
データセンター、高速・大容量ネットワークを軸としたITイ
ンフラを提供しています。
Cloud Service Bigdata Datacenter Network
2013年1月 ioMemory ioDrive2 サービス提供開始
2014年11月 ioMemory PX600 サービス提供開始
4. (C) IDC Frontier Inc. All Rights
Reserved.
サービスポートフォリオ
Cloud
パブリッククラウド
プライベートクラウド
オブジェクトストレージ
RDBMS(提供予定)
ベアメタルサーバー
Network
ファイアウォール コンテンツキャッシュマネージドGSLB
不正侵入検知/防御サービス DDoS対策サービス
ウェブアプリケーション
ファイアウォール(WAF)
Bigdata DataCenter
Solution Service
ハイパフォーマンスデザインパック
Infrastructure
首都圏、福島、大阪、北九州の全国9か所のデータセンターインフラ
総容量330Gbpsの高速・大容量バックボーンネットワークインフラ
Yahoo!ビッグデータインサイト
ハウジングサービス
インターネット接続
オンサイト運用アウトソーシング
マネージドサービス
サーバー基礎構築
5. (C) IDC Frontier Inc. All Rights
Reserved.
IDCFのioMemory搭載サービス 選べる2タイプ
ハードウェア専有仮想マシン
Highio.5XL128
ベアメタルサーバー
高速IO1000
ポータル上から作成し即時利用
時間従量で1時間から利用
仮想化による柔軟性
オーバーヘッド無しのフル性能
ioMemoryを直接操作
メモリサイズをカスタマイズ
7. (C) IDC Frontier Inc. All Rights
Reserved.
http://serverfesta.info/
ベンチマークやチューニングを肴にするサーバー好きのための祭り
チューニングによるベンチマークスコアを競い合う
チューニング結果はオープンに
賞金・賞品あり
第1回 2013年秋 CMS (Wordpress)
第2回 2015年春 DB (MySQL)
サバフェス(サーバーの方)
8. (C) IDC Frontier Inc. All Rights
Reserved.
サバフェス2015 Spring とは何だったのか
tpcc-mysql
-w warehouses 1000
-c connections 30
-r warmup_time 0
-l running_time 900
-i report_interval 60
→出力結果のTpmCで順位づけ
tpcc-mysql
サバフェスシステム 競技用サーバー(チーム毎)
MySQL/MariaDB/Percona
5.5系/5.6系
ioDrive2 MLC 365GB
MySQL設定縛り
innodb_doublewrite
innodb_flush_log_at_trx_commit = 1
IDCFベアメタルサーバー高速IO365
9. (C) IDC Frontier Inc. All Rights
Reserved.
サバフェス 情報まとめ
Twitter
https://twitter.com/#サバフェス
Togetter:サバフェス2015 Spring表彰式(2015/3/26)
http://togetter.com/li/800168
1位の方 @ttkzwさん
http://www.slideshare.net/ttkzw/svfes2
2位の方 @mapk0yさん
http://mapk0y.hatenablog.com/entry/2015/04/13/090915
3位の方 @i_rethiさん
http://www.slideshare.net/hiroi10/lt-46409689
11. (C) IDC Frontier Inc. All Rights
Reserved.
お約束
以降の設定は、今回の環境、今回のベンチマーク内容での結果です
今回の設定を、未検証でそのまま入れないように
念のため、内容の把握と事前の検証をしてください
ハードウェア環境は、サバフェス時と異なります(ioMemoryが新しい)
結果や効果が変わる場合があります
サバフェス時は15分間の戦いでしたが、今回は1時間計測しています
以降の計測は、1回のみです(数%の誤差はあります)
12. (C) IDC Frontier Inc. All Rights
Reserved.
ハードウェア / BIOS
IDCFクラウド ベアメタルサーバー 高速IO1000
HP ProLiant DL360p Gen8
Intel Xeon E5-2650v2 (@2.6GHz, 8コア) ×2
メモリ 32GB (8GB DIMM ×4)
SAS 1.5kRPM HDD ×4 RAID10 + RAIDキャッシュ1GB
ioMemory PX600 1TB (VSL 4.0.2)
CentOS 6.4 (2.6.32-431.el6.x86_64)
■BIOS設定
サーバー/CPU/DIMMの省電力系の設定 → 性能優先/最大性能
(HPのサーバー:協調電力コントロール → 無効)
ハイパースレッディング → 有効
IDCFクラウド ベアメタルサーバーの場合は提供時に設定済み
14. (C) IDC Frontier Inc. All Rights
Reserved.
MySQL / MariaDB / PerconaServer
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
60
120
180
240
300
360
420
480
540
600
660
720
780
840
900 0
5000
10000
15000
20000
25000
30000
35000
40000
60
120
180
240
300
360
420
480
540
600
660
720
780
840
900
1位 Percona (9758TpmC)
2位 MariaDB (9524TpmC)
3位 MySQL (8201TpmC)
1位 Percona (26250TpmC)
2位 MySQL (24818TpmC)
3位 MariaDB (23532TpmC)
Transactions / min Transactions / min
innodb_buffer_pool_sizeのみ設定 I/O関連の設定を付与
※設定、バージョンはこちら http://www.slideshare.net/tafujish/lt-2-46342987
↑
15min
↑
15min
15. (C) IDC Frontier Inc. All Rights
Reserved.
MySQL / MariaDB / PerconaServer
Percona
61%
Maria
28%
MySQL
11%
Percona
100%
最終スコアが取れた
36チーム中
入賞6チーム中
サバフェスでの利用状況
→ 以降の検証はPerconaServerを選択
17. (C) IDC Frontier Inc. All Rights
Reserved.
HDD vs ioMemory
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
50000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
ローカルHDD (1086TpmC)
ioMemory (21119TpmC)
ioMemory + チューニング (43581TpmC)
Transactions / min.
↑
60min
18. (C) IDC Frontier Inc. All Rights
Reserved.
ベースのmy.cnf
skip-name-resolve
max_connections = 100
thread_cache_size = 100
innodb_buffer_pool_size = 20G
ローカルHDD
ioMemory
ioMemory + チューニング
skip-name-resolve
max_connections = 100
thread_cache_size = 100
innodb_buffer_pool_size = 20G
innodb_flush_method = O_DIRECT
innodb_write_io_threads = 16
innodb_read_io_threads = 8
innodb_io_capacity = 10000
innodb_log_file_size = 2G
innodb_max_dirty_pages_pct = 60
innodb_adaptive_flushing = 1
innodb_log_files_in_group = 2
innodb_thread_concurrency = 0
innodb_purge_threads = 1
5.6では
デフォルト値
“MySQL-Fusion-io Best Practices Guide”
より
Percona-Server 5.6.23 (公式バイナリ)
19. 19(C) IDC Frontier Inc. All Rights
Reserved.
ファイルシステム
EXT4 (mkfs.ext4 /dev/fioa)
XFS (mkfs.xfs -s size=4096 -b size=4096 /dev/fioa)
※マウントオプションはデフォルト
20. (C) IDC Frontier Inc. All Rights
Reserved.
EXT4 vs XFS
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
50000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Transactions / min.
↑
60min
EXT4 (43581TpmC)
XFS (43558TpmC)
21. (C) IDC Frontier Inc. All Rights
Reserved.
ファイルシステム
短時間での計測ならEXT4の方が高速だったが、
数十分以降はXFSの方が高速
→ 無理にどちらか選ぶ必要は無さそう
マウントオプションは、nobarrierとnoatimeが定番
→ 今回、有意な差が出なかったので省略
※以降はXFSで実施してます
23. (C) IDC Frontier Inc. All Rights
Reserved.
0
10000
20000
30000
40000
50000
60000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
innodb_buffer_pool_size
20G
28G
24G
16G
Transactions / min.
↑
60min
24. (C) IDC Frontier Inc. All Rights
Reserved.
innodb_buffer_pool_size
ioMemoryにより高速なI/Oでも結局はメモリが重要
VSL(ioMemoryのドライバ)もメモリを消費する
→ ここでは余裕をもって20G
25. 25(C) IDC Frontier Inc. All Rights
Reserved.
I/Oとフラッシュ
innodb_io_capacity
innodb_io_capacity_max
innodb_lru_scan_depth
innodb_buffer_pool_instances
innodb_flush_neighbors
26. (C) IDC Frontier Inc. All Rights
Reserved.
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
50000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
I/Oとフラッシュ
innodb_io_capacity=8000
innodb_io_capacity_max=9500
innodb_lru_scan_depth=2000
innodb_io_capacity=15000
innodb_io_capacity_max=15000
innodb_lru_scan_depth=1500
innodb_buffer_pool_instances=12
innodb_io_capacity=10000
Transactions / min.
↑
60min
27. (C) IDC Frontier Inc. All Rights
Reserved.
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
50000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
I/Oとフラッシュ
innodb_flush_neighbors=0
innodb_flush_neighbors=1(デフォルト)
Transactions / min.
↑
60min
28. (C) IDC Frontier Inc. All Rights
Reserved.
I/Oとフラッシュ
チューニングのポイントだけど、難しい・・・
→ ここは下手にいじらず innodb_io_capacity=10000 のみでも十分有効
innodb_flush_neighbors=0 は効果ありそうだが誤差の範囲か
30. (C) IDC Frontier Inc. All Rights
Reserved.
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
50000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
ログのブロックサイズ
innodb_log_block_size=4096
デフォルト(512)
Transactions / min.
↑
60min
31. (C) IDC Frontier Inc. All Rights
Reserved.
ログのブロックサイズ
ioMemory 512Byte
ファイルシステム 4KByte
ioMemory 4KByte
ファイルシステム 4KByte
MySQL Log
4KByte
I/O
MySQL Log
4KByte
I/O
32. (C) IDC Frontier Inc. All Rights
Reserved.
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
50000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
ログのブロックサイズ
innodb_log_block_size=4096
デフォルト(512)
Transactions / min.
↑
60min
innodb_log_block_size=4096 + fio-format:4K
33. (C) IDC Frontier Inc. All Rights
Reserved.
ログのブロックサイズ
innodb_log_block_size=4096
ioMemoryのblock sizeを4Kにすると効果的
4KByteでフォーマットする
# fio-format –b 4K /dev/fct0
現在のブロックサイズを確認する
# fio-status –a | grep Format
Format: v500, 244140625 sectors of 4096 bytes
Format: 244140625 sectors of 4096 bytes
35. (C) IDC Frontier Inc. All Rights
Reserved.
その他
innodb_checksum_algorithm=crc32
デフォルト
Transactions / min.
↑
60min
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
50000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
37. (C) IDC Frontier Inc. All Rights
Reserved.
まとめ
ioMemoryでは、これまで通りの定番の設定しておくだけ
細かいチューニングしなくても十分速いです
サバフェスの結果イコール、ファイルシステムは必ずしもEXT4が良いとは限らない
デフォルトのファイルシステムそのままでも十分
IOのサイズは、MySQLログ、ファイルシステム、ioMemoryそれぞれ合わせる
サバフェスのまとめサイトを参照いただき、他の設定も是非お試しください
- Percona/MariaDB用のパラメータ
- OS/ネットワークのチューニング
※これ以上の負荷だとネットワークがボトルネックになる