SlideShare a Scribd company logo
IDC Frontier Inc. All rights reserved.
E50: 実践!DBベンチマークツールの使い方
~IDCFクラウドRDBをベンチマークのデモで紹介~
2018年7月29日 July Tech Festa 2018
株式会社IDCフロンティア
クラウド事業本部 ビジネス開発部
藤城 拓哉 @tafujish
2
IDC Frontier Inc. All rights reserved.
自己紹介
【業務】
IDCFクラウドのサービス開発
(担当:IDCFクラウドRDB)
【趣味】
ベンチマーク
藤城 拓哉 (FUJISHIRO TAKUYA)
@tafujish
3
IDC Frontier Inc. All rights reserved.
Agenda
 IDCFクラウドとRDBサービスのご紹介
 ベンチマークとは
 データベースのベンチマークとは
 sysbenchの例
 tpcc-mysqlの例
 ケーススタディ
ベンチマークは良いぞぉ~
4
IDC Frontier Inc. All rights reserved.
株式会社IDCフロンティア
主にデータセンターや
クラウドなどITインフラ
の提供を行っております
【データセンター】
首都圏、関西、東北、九州のデータセンター群
【クラウド IaaS】
東日本リージョン/西日本リージョン
5
IDC Frontier Inc. All rights reserved.
4つの領域でサービスを展開
③クラウド ④ビッグデータ
①ネットワーク ②データセンター
Since 1986 Since 2000
Since 2009 Since 2014
6
IDC Frontier Inc. All rights reserved.
IDCFクラウド とは
7
IDC Frontier Inc. All rights reserved.
IDCFクラウドの特長1
ファイアウォール、ロードバランサー
高機能な仮想ルーターが無料で使える
ワンコインからGPUまで
コスパを追求したラインナップ
8
IDC Frontier Inc. All rights reserved.
IDCFクラウドの特長2
安定性を意識した
実装と運用
9
IDC Frontier Inc. All rights reserved.
IDCFクラウドの特長3
月額上限付き時間従量 月定額
国内向けを意識した
料金プラン・請求方法
10
IDC Frontier Inc. All rights reserved.
IDCFクラウドの特長4
・高性能
・圧倒的な拡張性
・高度なセキュリティ
オンプレとクラウドを併用し
全体コストの最適化
11
IDC Frontier Inc. All rights reserved.
12
IDC Frontier Inc. All rights reserved.
サービスラインアップ・連携サービス
(高性能ロードバランサー)
(広域負荷分散)
サービス
ラインアップ
連携サービス
RDB
コンピューティング
(リソースモニタリング) (Push配信) (メール配信) (アプリデバック) (脆弱性試験)
13
IDC Frontier Inc. All rights reserved.
IDCFクラウド RDB とは
14
IDC Frontier Inc. All rights reserved.
構成
Client
StandbyActive
Client
障害時にDNSベースの
自動切替え
プライベートコネクト経由の
アクセスも可能
※Client側にStaticRouteの設定が必要
お客様環境
IDCFクラウド コンピューティング
RDBRDB
FQDNによる
アクセス
ボリュームミラーリング
MySQL
15
IDC Frontier Inc. All rights reserved.
IDCFクラウド RDB とは
わかりやすい料金 移行のしやすさ
シンプルなUI
オールフラッシュ性能
障害切替の速さ
低遅延の応答性能
RDB開発の工夫点従来のIDCFクラウドの良い点
ハードウェア専有タイプ 無停止スペックアップ
16
IDC Frontier Inc. All rights reserved.
IDCFクラウド RDB 料金
RDBマシン料金
 月額上限付き時間従量料金
 マシンタイプ毎の料金
 Light.S1 から小さくはじめられる
データディスク料金
 コンピューティングに準ずる
 月額 20円/GB
 時間 0.04円/GB
 1GB~利用可能
冗長構成料金
 冗長時は2台分の料金
※ データディスクを含む
 シングル構成も可能
バックアップ料金
 オブジェクトストレージ
を利用
 50GBまで無料
 7.8円/GB
オプション オプション
予算のサイジングがしやすい価格体系
17
IDC Frontier Inc. All rights reserved.
tpcc-mysql ベンチマークスコア比較
A社
(Gen1)
A社
(Gen2)
IDCFクラウド
RDB
B社
(Gen2)
A社
(Gen1)
A社
(Gen2)
IDCFクラウド
RDB
B社
(Gen2)
warehouse=500 (I/Oバウンド) warehouse=50 (CPUバウンド)
• 4vCPU/32GBに近いマシンタイプ
• 冗長化あり
• 国内リージョン
• 1時間実行計測
TpmC
ベンチマークの実測として高性能
18
IDC Frontier Inc. All rights reserved.
ネットワークレイテンシ比較
みんなが困っていること IDCFクラウド RDB
常に低レイテンシを実現
19
IDC Frontier Inc. All rights reserved.
sysbench (OLTP) しながらスケールアップ
0
200
400
600
800
1000
1200
1400
0
200
400
600
800
1000
1200
1
16
31
46
61
76
91
106
121
136
151
166
181
196
211
226
241
256
271
286
301
316
331
346
361
376
391
406
421
436
451
466
481
496
511
526
541
556
571
586
Transactions/sec
Latency(99%)[msec]
経過時間 [sec]
Scale-up
L8→XL16
Scale-up
M4→L8
高負荷状態から無停止で抜け出し可能
20
IDC Frontier Inc. All rights reserved.
IDCFクラウドのJTF向けクーポン
金額:1万円
クーポンコード:<会場限定>
登録期限:7月28日~8月31日
有効期限:(登録日から)3か月
21
IDC Frontier Inc. All rights reserved.
最高のITエンジニアリング
を身に着ける
22
IDC Frontier Inc. All rights reserved.
最高のベンチマークテクニック
を身に着ける
23
IDC Frontier Inc. All rights reserved.
ベンチマークとは
元の意味
 基準点
 比較指標
→ 処理性能を測る
24
IDC Frontier Inc. All rights reserved.
なぜベンチマークをするのか
基準点
 システムの処理性能把握
→ どこまで耐えられるか = スケール時の目安
比較指標
 環境の比較
→ サービス・機器・スペックの選定やサイジング
最終的にはコストの最適化
25
IDC Frontier Inc. All rights reserved.
ミドルウェア
ハードウェア
どこのベンチマークをするのか
CPU メモリI/O ディスクI/O ネットワークI/O
WEB DB FW・LB ・・・
システム全体
26
IDC Frontier Inc. All rights reserved.
ミドルウェア
ハードウェア
どこのベンチマークをするのか
CPU メモリI/O ディスクI/O ネットワークI/O
WEB DB FW・LB ・・・
システム全体
システムリリース前にやる
システムの処理性能把握=負荷試験
システムを作る前にやる
環境選定(事前調査)
システムを作る前・最中にやる
アプリ完成前からテストしたい
27
IDC Frontier Inc. All rights reserved.
ミドルウェア
ハードウェア
どこのベンチマークをするのか
CPU メモリI/O ディスクI/O ネットワークI/O
WEB DB FW・LB ・・・
システム全体
システムリリース前にやる
システムの処理性能把握=負荷試験
システムを作る前にやる
環境選定(事前調査)
システムを作る前・最中にやる
アプリ完成前からテストしたい
本日のネタ
28
IDC Frontier Inc. All rights reserved.
なぜ、DBのベンチマークは “最高” なのか
CPU、メモリ、ディスク、NWすべての性能が影響
→ 難しい
• ツールを動かすだけでなく、構成から考える必要がある
• ボトルネックがどこかわかりにくい
→ 上手く扱えれば有用
• CPUやディスクI/Oのベンチマークにもなる
• システム全体の中でボトルネックになりやすいDBを把握
29
IDC Frontier Inc. All rights reserved.
DB以外のベンチマークが気になる方はこちら
総集編に収録されています
30
IDC Frontier Inc. All rights reserved.
本日のゴール
 DBベンチマークのツールが実行できる
 実行結果を読み取れる
 ベンチマークの目的に合わせたパラメータ設定ができる
→ 比較表を作成し、必要なスペックの選定ができる
31
IDC Frontier Inc. All rights reserved.
DBのベンチマーク
下ごしらえ
32
IDC Frontier Inc. All rights reserved.
DBベンチマークの準備
CPU等をベンチマークするとき
 ツールを落として実行
DBをベンチマークするとき
 DBサーバーを準備
• DBのconfigどうしよ
 クライアントを準備
• クライアントもそこそのスペックいる
 ツールを落として
• インデックスはる?
 テストデータを準備
• バックアップとっておく
 実行
• 時間かけて測る
33
IDC Frontier Inc. All rights reserved.
DBベンチマークの構成
クライアントとサーバーが同一マシン
 シンプルで実行しやすい
 ツール側もCPUリソースを消費する
 ディスクI/O性能が目的なら有り
サーバー
ベンチ
ツール
DB
サーバー
サーバー①
ベンチ
ツール
サーバー②
DB
サーバー
クライアントとサーバーが別マシン
 実構成に近い
 ネットワーク(NIC)にも負荷がかかる
 通常はこちらの構成を利用
34
IDC Frontier Inc. All rights reserved.
DBベンチマークの性能指標
1. 単位時間あたりの処理性能
QPS (Queries Per Second)
= RPS (Requests Per Second)
TPS (Transactions Per Second)
TPM (Transactions Per Minute)
2. 応答時間
Response Time [ms (milliseconds)]
35
IDC Frontier Inc. All rights reserved.
DBベンチマークの性能指標
1. 単位時間あたりの処理性能
QPS (Queries Per Second)
= RPS (Requests Per Second)
TPS (Transactions Per Second)
TPM (Transactions Per Minute)
2. 応答時間
Response Time [ms (milliseconds)]
目標値として設定するならこれ
●同時接続時に、90%ラインの
レスポンスタイムが▲秒以下
どれくらい処理できるか確認す
るときはこれ(中身に意味があれば
トランザクション、なければクエリ)
36
IDC Frontier Inc. All rights reserved.
DBベンチマークツール ※MySQLの例
単純にクエリを繰り返す
 mysqlslap
 sysbench ※カスタマイズ可能
実際の業務を模した複雑なクエリ
 tpcc-mysql (卸売)
 LinkBench (ソーシャルネットワーク)
本日はsysbenchとtpcc-mysqlを取り上げます
37
IDC Frontier Inc. All rights reserved.
sysbench
38
IDC Frontier Inc. All rights reserved.
sysbench は良いぞぉ~
 様々なベンチマークが可能
 DB(OLTP)
 CPU
 Memory
 File I/O
 Threads
 Mutex
 MySQL以外にもPostgreSQLに対応
 パラメータが豊富で、出力も様々可能
 クエリ(OLTP)が色々用意済みで、カ
スタマイズも可能
39
IDC Frontier Inc. All rights reserved.
sysbench インストール
パッケージのインストールのみ
【Debian/Ubuntu】
【RHEL/CentOS】
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.deb.sh | sudo bash
sudo apt -y install sysbench
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
sudo yum -y install sysbench
最新の情報はこちら https://github.com/akopytov/sysbench
40
IDC Frontier Inc. All rights reserved.
sysbench OLTPのテスト例
/usr/share/sysbench にスクリプトが設置されます
oltp_delete.lua
oltp_insert.lua
oltp_point_select.lua
oltp_read_only.lua
oltp_read_write.lua
oltp_update_index.lua
oltp_update_non_index.lua
oltp_write_only.lua
※実際に実行するクエリは oltp_common.lua の中で確認できる
41
IDC Frontier Inc. All rights reserved.
sysbench 実行例
1. データベース(sbtest)作成
2. データ作成+インデックス作成(oltp_read_writeの例)
mysqladmin -u <user> -h <host> --password=<password> create sbtest
sysbench ¥
--db-driver=mysql --threads=8 ¥
--tables=8 --table-size=100000 ¥
--mysql-user=<user> --mysql-password=<password> --mysql-host=<host> ¥
oltp_read_write prepare
 データ作成のときは prepare
 threads(スレッド数)、tables(テーブル数)、tables-size(テーブルサイズ)
は負荷の規模に応じて変える
42
IDC Frontier Inc. All rights reserved.
sysbench 実行例
3. 測定(oltp_read_writeの例)
sysbench ¥
--db-driver=mysql --threads=16 ¥
--tables=8 --table-size=100000 ¥
--time=600 ¥
--mysql-user=<user> --mysql-password=<password> --mysql-host=<host> ¥
oltp_read_write run
 データ作成のときは run
 threads(スレッド数)、tables(テーブル数)、tables-size(テーブルサイズ)
は負荷の規模に応じて変える
 time(測定時間:秒)はスコアが安定する(数十分)くらいの時間が必要
43
IDC Frontier Inc. All rights reserved.
sysbench デモ
StandbyActive
Client
RDBRDB
MySQL
IDCFクラウド RDB
IDCFクラウド
コンピューティング
sysbench
44
IDC Frontier Inc. All rights reserved.
sysbench 測定結果
SQL statistics:
queries performed:
read: 1829968
write: 522700
other: 261372
total: 2614040
transactions: 130660 (217.67 per sec.)
queries: 2614040 (4354.84 per sec.)
ignored errors: 52 (0.09 per sec.)
reconnects: 0 (0.00 per sec.)
General statistics:
total time: 600.2589s
total number of events: 130660
Latency (ms):
min: 10.52
avg: 73.50
max: 6850.97
95th percentile: 231.53
sum: 9602990.46
← TPS
← QPS
← Response Time
45
IDC Frontier Inc. All rights reserved.
sysbench 測定に便利なオプション①
・・・
[ 100s ] thds: 16 tps: 216.01 qps: 4278.11 (r/w/o: 2975.08/871.02/432.01) lat (ms,95%): 344.08 err/s: 0.00 reconn/s: 0.00
[ 101s ] thds: 16 tps: 199.03 qps: 4158.54 (r/w/o: 2909.38/851.11/398.05) lat (ms,95%): 257.95 err/s: 0.00 reconn/s: 0.00
[ 102s ] thds: 16 tps: 235.98 qps: 4519.57 (r/w/o: 3154.70/892.91/471.95) lat (ms,95%): 183.21 err/s: 0.00 reconn/s: 0.00
[ 103s ] thds: 16 tps: 209.02 qps: 4303.40 (r/w/o: 3061.28/824.08/418.04) lat (ms,95%): 227.40 err/s: 0.00 reconn/s: 0.00
[ 104s ] thds: 16 tps: 236.00 qps: 4733.04 (r/w/o: 3305.03/956.01/472.00) lat (ms,95%): 186.54 err/s: 0.00 reconn/s: 0.00
[ 105s ] thds: 16 tps: 224.00 qps: 4455.98 (r/w/o: 3119.99/888.00/448.00) lat (ms,95%): 253.35 err/s: 0.00 reconn/s: 0.00
[ 106s ] thds: 16 tps: 191.99 qps: 3882.77 (r/w/o: 2716.84/781.95/383.98) lat (ms,95%): 350.33 err/s: 0.00 reconn/s: 0.00
[ 107s ] thds: 16 tps: 224.01 qps: 4524.30 (r/w/o: 3136.20/940.06/448.03) lat (ms,95%): 308.84 err/s: 0.00 reconn/s: 0.00
[ 108s ] thds: 16 tps: 188.98 qps: 3630.68 (r/w/o: 2553.78/697.94/378.97) lat (ms,95%): 337.94 err/s: 1.00 reconn/s: 0.00
[ 109s ] thds: 16 tps: 238.02 qps: 4836.48 (r/w/o: 3405.34/955.10/476.05) lat (ms,95%): 183.21 err/s: 0.00 reconn/s: 0.00
[ 110s ] thds: 16 tps: 169.00 qps: 3379.00 (r/w/o: 2350.00/691.00/338.00) lat (ms,95%): 356.70 err/s: 0.00 reconn/s: 0.00
・・・
--report-interval=1
指定した時間毎(秒)の結果を出力。
時間経過によるスコアの安定性を確認できる。
↑
TPS
↑
QPS
↑
Response Time
46
IDC Frontier Inc. All rights reserved.
sysbench 測定に便利なオプション②
41.104 |******* 1443
41.851 |********* 1762
42.611 |********** 2096
43.385 |************ 2516
44.173 |**************** 3161
44.976 |******************** 3993
45.793 |************************* 5130
46.625 |****************************** 6021
47.472 |************************************ 7220
48.335 |*************************************** 7961
49.213 |**************************************** 8120
50.107 |************************************** 7758
51.018 |************************************** 7637
51.945 |********************************* 6789
52.889 |***************************** 5937
53.850 |************************* 5119
54.828 |******************** 4144
55.824 |***************** 3528
56.839 |************** 2779
57.871 |************ 2355
58.923 |********** 1990
--histogram=on
Laytency (Response Time)の
分布を確認できる。
47
IDC Frontier Inc. All rights reserved.
sysbench のデータサイズ
--table-size データベースサイズ [MB]
10000 2.8
100000 23
1000000 230
10000000 2,131
--tables データベースサイズ [MB]
1 230
2 439
4 890
8 1,655
--tables 1 のとき
--table-size 1000000 のとき
テーブル数×テーブルサイズでデータサイズが決まる
メモリ上に乗り切るデータサイズだと
→ 主にCPUに負荷がかかる
CPU-bound
メモリ上に乗り切らないデータサイズだと
→ 主にディスクI/Oに負荷がかかる
I/O bound
48
IDC Frontier Inc. All rights reserved.
tpcc-mysql
49
IDC Frontier Inc. All rights reserved.
tpcc-mysql は良いぞぉ~
 TPC-Cを参考にOSS実装
 卸売業を参考とした在庫管理のフロー
 実際の業務を模し、複雑な負荷をかける
ことが可能
 wharehose(倉庫)パラメータでデータ
規模を指定可能
 ディスクI/Oにガツンと負荷をかけられる
50
IDC Frontier Inc. All rights reserved.
tpcc-mysql インストール
1. 【Debian/Ubuntu】ビルドに必要なパッケージのインストール
1. 【RHEL/CentOS】ビルドに必要なパッケージのインストール
2. 【共通】ビルド
apt install git gcc make mysql-client libmysqlclient-dev -y
最新の情報はこちら https://github.com/Percona-Lab/tpcc-mysql
yum install git gcc make mariadb mariadb-devel -y
git clone https://github.com/Percona-Lab/tpcc-mysql.git
cd tpcc-mysql/src
make
cd ..
51
IDC Frontier Inc. All rights reserved.
tpcc-mysql インストール
3. データベース(tpcc)作成
4. テーブル作成
5. データ作成
6. インデックス作成
mysqladmin -u <user> -h <host> --password=<password> create tpcc
mysql -u <user> -h <host> --password=<password> tpcc < ./create_table.sql
./tpcc_load -h <host> -d tpcc -u <user> -p <password> -w 50
mysql -u <user> -h <host> --password=<password> tpcc < ./add_fkey_idx.sql
※ -w はデータサイズ規模(warehouse)
52
IDC Frontier Inc. All rights reserved.
tpcc-mysql を実行する前にバックアップ
同じ測定を複数回実施したいとき、
データ作成に時間かかるので、
データ・インデックス作成後、測定開始前に
バックアップをとることをおススメです。
1. ダンプ
 mysqldumpやxtrabackup
 DBサービス起動したまま可能
 時間かかる
2. コールドバックアップ
 サービスを停止してdatadir下をコピー
 高速なのでオススメ
DBへのwriteクエリ等の更新や挿
入があるとDB内のデータが変わる
ため、2回目実行しても同じ結果が
得られない
53
IDC Frontier Inc. All rights reserved.
tpcc-mysql 実行例
測定
-w warehouse データ規模
-c connections 同時接続数
-l running_time 測定時間(秒)
-i report_interval 指定した時間毎に結果出力(秒)
-r warmup_time 測定前のウォームアップ時間(秒)
./tpcc_start -h <host> -P 3306 -d tpcc -u <user> -p <password> -w 50 -c 32 -l 600 -i 60 -r 0
54
IDC Frontier Inc. All rights reserved.
tpcc-mysql デモ
StandbyActive
Client
RDBRDB
MySQL
IDCFクラウド RDB
IDCFクラウド
コンピューティング
tpcc-mysql
55
IDC Frontier Inc. All rights reserved.
tpcc-mysql 測定結果
<Constraint Check> (all must be [OK])
[transaction percentage]
Payment: 43.48% (>=43.0%) [OK]
Order-Status: 4.35% (>= 4.0%) [OK]
Delivery: 4.35% (>= 4.0%) [OK]
Stock-Level: 4.35% (>= 4.0%) [OK]
[response time (at least 90% passed)]
New-Order: 99.99% [OK]
Payment: 100.00% [OK]
Order-Status: 100.00% [OK]
Delivery: 100.00% [OK]
Stock-Level: 99.99% [OK]
<TpmC>
38179.102 TpmC ← TPM
56
IDC Frontier Inc. All rights reserved.
tpcc-mysql 測定結果(定期レポート)
60, trx: 7121, 95%: 402.806, 99%: 601.046, max_rt: 1103.069, 7130|425.495, 713|238.339, 712|895.679, 706|1166.206
120, trx: 5190, 95%: 601.766, 99%: 2539.417, max_rt: 4962.138, 5194|4072.930, 519|283.796, 519|4984.786, 521|1420.736
180, trx: 4264, 95%: 1121.245, 99%: 1595.299, max_rt: 3258.285, 4261|2299.293, 428|202.829, 423|3301.626, 428|1344.811
240, trx: 6025, 95%: 765.965, 99%: 982.879, max_rt: 1238.932, 6023|946.613, 602|93.649, 603|1507.521, 603|661.941
300, trx: 6534, 95%: 700.597, 99%: 894.169, max_rt: 1066.967, 6531|888.620, 652|55.833, 652|1168.198, 654|753.374
360, trx: 5898, 95%: 769.873, 99%: 1094.713, max_rt: 1373.785, 5904|1170.824, 591|246.228, 592|1492.686, 591|824.014
420, trx: 4522, 95%: 880.885, 99%: 1048.842, max_rt: 1249.462, 4521|1029.945, 453|77.874, 452|1678.444, 453|774.947
480, trx: 5127, 95%: 876.939, 99%: 1112.885, max_rt: 1448.340, 5121|1298.610, 512|79.652, 512|1643.632, 514|663.227
540, trx: 5927, 95%: 976.720, 99%: 1243.228, max_rt: 1404.741, 5921|1307.893, 592|74.536, 592|1695.186, 593|1121.459
600, trx: 6857, 95%: 796.121, 99%: 1072.656, max_rt: 1295.642, 6854|1228.602, 686|247.134, 685|1583.367, 678|774.220
…
-i 60
指定した時間毎(秒)の結果を出力。
時間経過によるスコアの安定性を確認できる。
↑
Transactions
↑
Response Time
57
IDC Frontier Inc. All rights reserved.
tpcc-mysql のデータサイズ
warehouse データベースサイズ[GB]
50 3.5
100 7.0
500 35.4
1000 71
1500 107
warehouseを大きくして
I/O bound に負荷をかけよう
58
IDC Frontier Inc. All rights reserved.
Case Study
59
IDC Frontier Inc. All rights reserved.
Case 1 性能比較
次に開発する新規サービスは、クラウドサービスのDBaaSを使ってみよう。
でも、マシンタイプ色々あってどれにしよう。
1. 想定の負荷を仮定する
tpcc-mysqlの方が負荷大き目
【sysbench】
--threads=16
--tables=8
--tables-size=100000
--time=3600
oltp_read_write
2. 各マシンタイプにて同じ設定で計測
※クライアントのスペックは大き目を用意しておく
(ここでは highcpu.L8)
【tpcc-mysql】
-w 500
-c 32
-l 3600
-r 0
60
IDC Frontier Inc. All rights reserved.
Case 1 性能比較:応用
各社サービス間の比較も可能
【ポイント】
・apples to apples
CPU/メモリ
冗長化設定
リージョン/ゾーン
61
IDC Frontier Inc. All rights reserved.
Case 2 時間経過による性能の変化
最終的なベンチ結果のみだけでなく、
時間経過による影響も確認したい。
1. 測定時にレポート設定
毎秒表示のときは1、毎分は60。
【sysbench】
--report-interval=1
【tpcc-mysql】
-i 1
2. 対象の列を抜き出してグラフ化
※tpcc-mysqlで60秒の例
62
IDC Frontier Inc. All rights reserved.
Case 2 時間経過による性能の変化:応用
動的なスペックアップも
確認可能
63
IDC Frontier Inc. All rights reserved.
Case 3 ディスクI/O性能
超速いSSDを手に入れたぞ。
I/Oに負荷がかかった状態でどれくらい速いのかな。
1. tpcc-mysqlが複雑な処理なのでベター
2. warehouseを大きくする
ここでは –w 1500
※my.cnfでI/O周りのチューニング入れる
64
IDC Frontier Inc. All rights reserved.
Case 4 MySQLのパラメーター
よし、MySQLをベンチマークするぞ。
MySQLのconfigどうしよう・・・
innodb_flush_method=O_DIRECT
innodb_write_io_threads=16
innodb_read_io_threads=8
innodb_io_capacity=10000
1. ベストは、本番時に利用予定のもの
や社内で決まっているもの
2. なければ、ほぼデフォルトにして、
innodb_buffer_pool_sizeを設定し
ておく(搭載メモリの7割前後)
3. 高速なSSDであれば、I/O周りの設
定を入れておく 例→
65
IDC Frontier Inc. All rights reserved.
Case 5 同時接続数
メニーコアCPU搭載サーバーを手に入れたぞ。
CPUコアが多いってことは、並列数(同時接続数)も多くさばけるよね。
Percona Database Performance Blog
https://www.percona.com/blog/2018/07/11/amd-epyc-performance-testing-ps-systemd/
1. 同時接続数を指定して測定する
【sysbench】
--threads=512
【tpcc-mysql】
-c 512
2. 同時接続数を変更し、測定を繰り返す
4, 8, 16, 32, 64, 128, 256, 512など
66
IDC Frontier Inc. All rights reserved.
DBのベンチマークに興味をもったあなたへ
https://www.percona.com/blog/
 最新のハードウェアやMySQLの情報
 ベンチマークツールの紹介
 sysbench-tpcc
67
IDC Frontier Inc. All rights reserved.
むすび
DBのベンチマークができるようになったら練習兼ねて、
IDCFクラウド上でお試しください。
 IDCフロンティアもブース出展中
 IDCFクラウド RDB の無料キャンペーンは7末まで
68
IDC Frontier Inc. All rights reserved.
IDCFクラウドのJTF向けクーポン
金額:1万円
クーポンコード:<会場限定>
登録期限:7月28日~8月31日
有効期限:(登録日から)3か月
69
IDC Frontier Inc. All rights reserved.
Happy benchmarking!

More Related Content

PDF
Apache Kafka 0.11 の Exactly Once Semantics
PDF
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
PDF
SQL大量発行処理をいかにして高速化するか
PPTX
MongoDBの監視
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
PPTX
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
PDF
Linux女子部 systemd徹底入門
Apache Kafka 0.11 の Exactly Once Semantics
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
SQL大量発行処理をいかにして高速化するか
MongoDBの監視
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTTデータが考えるデータ基盤の次の一手 ~AI活用のために知っておくべき新潮流とは?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
Linux女子部 systemd徹底入門

What's hot (20)

PDF
TIME_WAITに関する話
PDF
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
PDF
Vacuum徹底解説
PDF
イミュータブルデータモデル(世代編)
PDF
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
PDF
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
PDF
Presto ベースのマネージドサービス Amazon Athena
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PDF
InnoDBのすゝめ(仮)
PDF
SolrとElasticsearchを比べてみよう
PDF
AWS Black Belt Online Seminar Amazon Aurora
PDF
MySQLアーキテクチャ図解講座
PDF
NetflixにおけるPresto/Spark活用事例
PPTX
Kafkaを活用するためのストリーム処理の基本
PDF
超実践 Cloud Spanner 設計講座
PDF
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
PDF
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
PPTX
事例で学ぶApache Cassandra
PDF
KafkaとAWS Kinesisの比較
TIME_WAITに関する話
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
Vacuum徹底解説
イミュータブルデータモデル(世代編)
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Presto ベースのマネージドサービス Amazon Athena
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
InnoDBのすゝめ(仮)
SolrとElasticsearchを比べてみよう
AWS Black Belt Online Seminar Amazon Aurora
MySQLアーキテクチャ図解講座
NetflixにおけるPresto/Spark活用事例
Kafkaを活用するためのストリーム処理の基本
超実践 Cloud Spanner 設計講座
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
事例で学ぶApache Cassandra
KafkaとAWS Kinesisの比較
Ad

Similar to 実践!DBベンチマークツールの使い方 (20)

PPTX
IDCFクラウドセミナー RDB活用
PDF
Cephベンチマーク kvm
PDF
【Hpcstudy】みんな、ベンチマークどうやってるの?
PDF
ゲームインフラと解析基盤 そのものの考え方を変えるAWS
PDF
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
PDF
A24 SQL Server におけるパフォーマンスチューニング手法 - 注目すべきポイントを簡単に by 多田典史
PDF
サバフェス上位入賞者にみる ioMemory×MySQL 最新チューニング教えます
PDF
hbstudy37 slide
PDF
【Cisco Data Center Forum 2014】 Cisco UCS の今後の方向性と新製品 Cisco UCS Invicta、および新サー...
PDF
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
PPTX
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
PDF
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
PPTX
Applibot presents Smartphone Game on AWS
PDF
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
PDF
MySQL Cluster でもフラッシュドライブを活用してみる
PDF
C32 DB Performance on Cloud by 安藤賀章
PDF
第28回「試してみましょう、DB on Flash Storageの効果」(2013/08/29 on しすなま!)
PDF
ビッグIoTデータに対応したデータベース GridDB
PDF
ITpro EXPO 2014: Cisco UCS Invictaによるアプリケーション高速化とストレージサーバソリューションのご紹介
PDF
【Oracle ORION編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
IDCFクラウドセミナー RDB活用
Cephベンチマーク kvm
【Hpcstudy】みんな、ベンチマークどうやってるの?
ゲームインフラと解析基盤 そのものの考え方を変えるAWS
[db analytics showcase Sapporo 2017] B27:世界最速のAnalytic DBはHadoopの夢を見るか by 株式会...
A24 SQL Server におけるパフォーマンスチューニング手法 - 注目すべきポイントを簡単に by 多田典史
サバフェス上位入賞者にみる ioMemory×MySQL 最新チューニング教えます
hbstudy37 slide
【Cisco Data Center Forum 2014】 Cisco UCS の今後の方向性と新製品 Cisco UCS Invicta、および新サー...
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
Applibot presents Smartphone Game on AWS
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
MySQL Cluster でもフラッシュドライブを活用してみる
C32 DB Performance on Cloud by 安藤賀章
第28回「試してみましょう、DB on Flash Storageの効果」(2013/08/29 on しすなま!)
ビッグIoTデータに対応したデータベース GridDB
ITpro EXPO 2014: Cisco UCS Invictaによるアプリケーション高速化とストレージサーバソリューションのご紹介
【Oracle ORION編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
Ad

More from Fujishiro Takuya (12)

PDF
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
PDF
オートスケールアップ Powered by Mackerel
PDF
Rancher ではじめる マルチクラウドコンテナー
PDF
●●●の知らないSBCの世界
PDF
Loves Baremetal-servers, Loves POWER
PPTX
僕はまだ10%しかIDCFクラウドを理解していなかった
PDF
おこづかいが足りないのでIDCFクラウドで自サイトを作ってみた話
PPTX
IDCFクラウド MeetUp2 LT
PDF
MaxScaleを触ってみた
PDF
Hbstudy41 slide
PDF
Hbstudy41 auto scaling
PDF
hbstudy37 doc
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
オートスケールアップ Powered by Mackerel
Rancher ではじめる マルチクラウドコンテナー
●●●の知らないSBCの世界
Loves Baremetal-servers, Loves POWER
僕はまだ10%しかIDCFクラウドを理解していなかった
おこづかいが足りないのでIDCFクラウドで自サイトを作ってみた話
IDCFクラウド MeetUp2 LT
MaxScaleを触ってみた
Hbstudy41 slide
Hbstudy41 auto scaling
hbstudy37 doc

実践!DBベンチマークツールの使い方

  • 1. IDC Frontier Inc. All rights reserved. E50: 実践!DBベンチマークツールの使い方 ~IDCFクラウドRDBをベンチマークのデモで紹介~ 2018年7月29日 July Tech Festa 2018 株式会社IDCフロンティア クラウド事業本部 ビジネス開発部 藤城 拓哉 @tafujish
  • 2. 2 IDC Frontier Inc. All rights reserved. 自己紹介 【業務】 IDCFクラウドのサービス開発 (担当:IDCFクラウドRDB) 【趣味】 ベンチマーク 藤城 拓哉 (FUJISHIRO TAKUYA) @tafujish
  • 3. 3 IDC Frontier Inc. All rights reserved. Agenda  IDCFクラウドとRDBサービスのご紹介  ベンチマークとは  データベースのベンチマークとは  sysbenchの例  tpcc-mysqlの例  ケーススタディ ベンチマークは良いぞぉ~
  • 4. 4 IDC Frontier Inc. All rights reserved. 株式会社IDCフロンティア 主にデータセンターや クラウドなどITインフラ の提供を行っております 【データセンター】 首都圏、関西、東北、九州のデータセンター群 【クラウド IaaS】 東日本リージョン/西日本リージョン
  • 5. 5 IDC Frontier Inc. All rights reserved. 4つの領域でサービスを展開 ③クラウド ④ビッグデータ ①ネットワーク ②データセンター Since 1986 Since 2000 Since 2009 Since 2014
  • 6. 6 IDC Frontier Inc. All rights reserved. IDCFクラウド とは
  • 7. 7 IDC Frontier Inc. All rights reserved. IDCFクラウドの特長1 ファイアウォール、ロードバランサー 高機能な仮想ルーターが無料で使える ワンコインからGPUまで コスパを追求したラインナップ
  • 8. 8 IDC Frontier Inc. All rights reserved. IDCFクラウドの特長2 安定性を意識した 実装と運用
  • 9. 9 IDC Frontier Inc. All rights reserved. IDCFクラウドの特長3 月額上限付き時間従量 月定額 国内向けを意識した 料金プラン・請求方法
  • 10. 10 IDC Frontier Inc. All rights reserved. IDCFクラウドの特長4 ・高性能 ・圧倒的な拡張性 ・高度なセキュリティ オンプレとクラウドを併用し 全体コストの最適化
  • 11. 11 IDC Frontier Inc. All rights reserved.
  • 12. 12 IDC Frontier Inc. All rights reserved. サービスラインアップ・連携サービス (高性能ロードバランサー) (広域負荷分散) サービス ラインアップ 連携サービス RDB コンピューティング (リソースモニタリング) (Push配信) (メール配信) (アプリデバック) (脆弱性試験)
  • 13. 13 IDC Frontier Inc. All rights reserved. IDCFクラウド RDB とは
  • 14. 14 IDC Frontier Inc. All rights reserved. 構成 Client StandbyActive Client 障害時にDNSベースの 自動切替え プライベートコネクト経由の アクセスも可能 ※Client側にStaticRouteの設定が必要 お客様環境 IDCFクラウド コンピューティング RDBRDB FQDNによる アクセス ボリュームミラーリング MySQL
  • 15. 15 IDC Frontier Inc. All rights reserved. IDCFクラウド RDB とは わかりやすい料金 移行のしやすさ シンプルなUI オールフラッシュ性能 障害切替の速さ 低遅延の応答性能 RDB開発の工夫点従来のIDCFクラウドの良い点 ハードウェア専有タイプ 無停止スペックアップ
  • 16. 16 IDC Frontier Inc. All rights reserved. IDCFクラウド RDB 料金 RDBマシン料金  月額上限付き時間従量料金  マシンタイプ毎の料金  Light.S1 から小さくはじめられる データディスク料金  コンピューティングに準ずる  月額 20円/GB  時間 0.04円/GB  1GB~利用可能 冗長構成料金  冗長時は2台分の料金 ※ データディスクを含む  シングル構成も可能 バックアップ料金  オブジェクトストレージ を利用  50GBまで無料  7.8円/GB オプション オプション 予算のサイジングがしやすい価格体系
  • 17. 17 IDC Frontier Inc. All rights reserved. tpcc-mysql ベンチマークスコア比較 A社 (Gen1) A社 (Gen2) IDCFクラウド RDB B社 (Gen2) A社 (Gen1) A社 (Gen2) IDCFクラウド RDB B社 (Gen2) warehouse=500 (I/Oバウンド) warehouse=50 (CPUバウンド) • 4vCPU/32GBに近いマシンタイプ • 冗長化あり • 国内リージョン • 1時間実行計測 TpmC ベンチマークの実測として高性能
  • 18. 18 IDC Frontier Inc. All rights reserved. ネットワークレイテンシ比較 みんなが困っていること IDCFクラウド RDB 常に低レイテンシを実現
  • 19. 19 IDC Frontier Inc. All rights reserved. sysbench (OLTP) しながらスケールアップ 0 200 400 600 800 1000 1200 1400 0 200 400 600 800 1000 1200 1 16 31 46 61 76 91 106 121 136 151 166 181 196 211 226 241 256 271 286 301 316 331 346 361 376 391 406 421 436 451 466 481 496 511 526 541 556 571 586 Transactions/sec Latency(99%)[msec] 経過時間 [sec] Scale-up L8→XL16 Scale-up M4→L8 高負荷状態から無停止で抜け出し可能
  • 20. 20 IDC Frontier Inc. All rights reserved. IDCFクラウドのJTF向けクーポン 金額:1万円 クーポンコード:<会場限定> 登録期限:7月28日~8月31日 有効期限:(登録日から)3か月
  • 21. 21 IDC Frontier Inc. All rights reserved. 最高のITエンジニアリング を身に着ける
  • 22. 22 IDC Frontier Inc. All rights reserved. 最高のベンチマークテクニック を身に着ける
  • 23. 23 IDC Frontier Inc. All rights reserved. ベンチマークとは 元の意味  基準点  比較指標 → 処理性能を測る
  • 24. 24 IDC Frontier Inc. All rights reserved. なぜベンチマークをするのか 基準点  システムの処理性能把握 → どこまで耐えられるか = スケール時の目安 比較指標  環境の比較 → サービス・機器・スペックの選定やサイジング 最終的にはコストの最適化
  • 25. 25 IDC Frontier Inc. All rights reserved. ミドルウェア ハードウェア どこのベンチマークをするのか CPU メモリI/O ディスクI/O ネットワークI/O WEB DB FW・LB ・・・ システム全体
  • 26. 26 IDC Frontier Inc. All rights reserved. ミドルウェア ハードウェア どこのベンチマークをするのか CPU メモリI/O ディスクI/O ネットワークI/O WEB DB FW・LB ・・・ システム全体 システムリリース前にやる システムの処理性能把握=負荷試験 システムを作る前にやる 環境選定(事前調査) システムを作る前・最中にやる アプリ完成前からテストしたい
  • 27. 27 IDC Frontier Inc. All rights reserved. ミドルウェア ハードウェア どこのベンチマークをするのか CPU メモリI/O ディスクI/O ネットワークI/O WEB DB FW・LB ・・・ システム全体 システムリリース前にやる システムの処理性能把握=負荷試験 システムを作る前にやる 環境選定(事前調査) システムを作る前・最中にやる アプリ完成前からテストしたい 本日のネタ
  • 28. 28 IDC Frontier Inc. All rights reserved. なぜ、DBのベンチマークは “最高” なのか CPU、メモリ、ディスク、NWすべての性能が影響 → 難しい • ツールを動かすだけでなく、構成から考える必要がある • ボトルネックがどこかわかりにくい → 上手く扱えれば有用 • CPUやディスクI/Oのベンチマークにもなる • システム全体の中でボトルネックになりやすいDBを把握
  • 29. 29 IDC Frontier Inc. All rights reserved. DB以外のベンチマークが気になる方はこちら 総集編に収録されています
  • 30. 30 IDC Frontier Inc. All rights reserved. 本日のゴール  DBベンチマークのツールが実行できる  実行結果を読み取れる  ベンチマークの目的に合わせたパラメータ設定ができる → 比較表を作成し、必要なスペックの選定ができる
  • 31. 31 IDC Frontier Inc. All rights reserved. DBのベンチマーク 下ごしらえ
  • 32. 32 IDC Frontier Inc. All rights reserved. DBベンチマークの準備 CPU等をベンチマークするとき  ツールを落として実行 DBをベンチマークするとき  DBサーバーを準備 • DBのconfigどうしよ  クライアントを準備 • クライアントもそこそのスペックいる  ツールを落として • インデックスはる?  テストデータを準備 • バックアップとっておく  実行 • 時間かけて測る
  • 33. 33 IDC Frontier Inc. All rights reserved. DBベンチマークの構成 クライアントとサーバーが同一マシン  シンプルで実行しやすい  ツール側もCPUリソースを消費する  ディスクI/O性能が目的なら有り サーバー ベンチ ツール DB サーバー サーバー① ベンチ ツール サーバー② DB サーバー クライアントとサーバーが別マシン  実構成に近い  ネットワーク(NIC)にも負荷がかかる  通常はこちらの構成を利用
  • 34. 34 IDC Frontier Inc. All rights reserved. DBベンチマークの性能指標 1. 単位時間あたりの処理性能 QPS (Queries Per Second) = RPS (Requests Per Second) TPS (Transactions Per Second) TPM (Transactions Per Minute) 2. 応答時間 Response Time [ms (milliseconds)]
  • 35. 35 IDC Frontier Inc. All rights reserved. DBベンチマークの性能指標 1. 単位時間あたりの処理性能 QPS (Queries Per Second) = RPS (Requests Per Second) TPS (Transactions Per Second) TPM (Transactions Per Minute) 2. 応答時間 Response Time [ms (milliseconds)] 目標値として設定するならこれ ●同時接続時に、90%ラインの レスポンスタイムが▲秒以下 どれくらい処理できるか確認す るときはこれ(中身に意味があれば トランザクション、なければクエリ)
  • 36. 36 IDC Frontier Inc. All rights reserved. DBベンチマークツール ※MySQLの例 単純にクエリを繰り返す  mysqlslap  sysbench ※カスタマイズ可能 実際の業務を模した複雑なクエリ  tpcc-mysql (卸売)  LinkBench (ソーシャルネットワーク) 本日はsysbenchとtpcc-mysqlを取り上げます
  • 37. 37 IDC Frontier Inc. All rights reserved. sysbench
  • 38. 38 IDC Frontier Inc. All rights reserved. sysbench は良いぞぉ~  様々なベンチマークが可能  DB(OLTP)  CPU  Memory  File I/O  Threads  Mutex  MySQL以外にもPostgreSQLに対応  パラメータが豊富で、出力も様々可能  クエリ(OLTP)が色々用意済みで、カ スタマイズも可能
  • 39. 39 IDC Frontier Inc. All rights reserved. sysbench インストール パッケージのインストールのみ 【Debian/Ubuntu】 【RHEL/CentOS】 curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.deb.sh | sudo bash sudo apt -y install sysbench curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash sudo yum -y install sysbench 最新の情報はこちら https://github.com/akopytov/sysbench
  • 40. 40 IDC Frontier Inc. All rights reserved. sysbench OLTPのテスト例 /usr/share/sysbench にスクリプトが設置されます oltp_delete.lua oltp_insert.lua oltp_point_select.lua oltp_read_only.lua oltp_read_write.lua oltp_update_index.lua oltp_update_non_index.lua oltp_write_only.lua ※実際に実行するクエリは oltp_common.lua の中で確認できる
  • 41. 41 IDC Frontier Inc. All rights reserved. sysbench 実行例 1. データベース(sbtest)作成 2. データ作成+インデックス作成(oltp_read_writeの例) mysqladmin -u <user> -h <host> --password=<password> create sbtest sysbench ¥ --db-driver=mysql --threads=8 ¥ --tables=8 --table-size=100000 ¥ --mysql-user=<user> --mysql-password=<password> --mysql-host=<host> ¥ oltp_read_write prepare  データ作成のときは prepare  threads(スレッド数)、tables(テーブル数)、tables-size(テーブルサイズ) は負荷の規模に応じて変える
  • 42. 42 IDC Frontier Inc. All rights reserved. sysbench 実行例 3. 測定(oltp_read_writeの例) sysbench ¥ --db-driver=mysql --threads=16 ¥ --tables=8 --table-size=100000 ¥ --time=600 ¥ --mysql-user=<user> --mysql-password=<password> --mysql-host=<host> ¥ oltp_read_write run  データ作成のときは run  threads(スレッド数)、tables(テーブル数)、tables-size(テーブルサイズ) は負荷の規模に応じて変える  time(測定時間:秒)はスコアが安定する(数十分)くらいの時間が必要
  • 43. 43 IDC Frontier Inc. All rights reserved. sysbench デモ StandbyActive Client RDBRDB MySQL IDCFクラウド RDB IDCFクラウド コンピューティング sysbench
  • 44. 44 IDC Frontier Inc. All rights reserved. sysbench 測定結果 SQL statistics: queries performed: read: 1829968 write: 522700 other: 261372 total: 2614040 transactions: 130660 (217.67 per sec.) queries: 2614040 (4354.84 per sec.) ignored errors: 52 (0.09 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 600.2589s total number of events: 130660 Latency (ms): min: 10.52 avg: 73.50 max: 6850.97 95th percentile: 231.53 sum: 9602990.46 ← TPS ← QPS ← Response Time
  • 45. 45 IDC Frontier Inc. All rights reserved. sysbench 測定に便利なオプション① ・・・ [ 100s ] thds: 16 tps: 216.01 qps: 4278.11 (r/w/o: 2975.08/871.02/432.01) lat (ms,95%): 344.08 err/s: 0.00 reconn/s: 0.00 [ 101s ] thds: 16 tps: 199.03 qps: 4158.54 (r/w/o: 2909.38/851.11/398.05) lat (ms,95%): 257.95 err/s: 0.00 reconn/s: 0.00 [ 102s ] thds: 16 tps: 235.98 qps: 4519.57 (r/w/o: 3154.70/892.91/471.95) lat (ms,95%): 183.21 err/s: 0.00 reconn/s: 0.00 [ 103s ] thds: 16 tps: 209.02 qps: 4303.40 (r/w/o: 3061.28/824.08/418.04) lat (ms,95%): 227.40 err/s: 0.00 reconn/s: 0.00 [ 104s ] thds: 16 tps: 236.00 qps: 4733.04 (r/w/o: 3305.03/956.01/472.00) lat (ms,95%): 186.54 err/s: 0.00 reconn/s: 0.00 [ 105s ] thds: 16 tps: 224.00 qps: 4455.98 (r/w/o: 3119.99/888.00/448.00) lat (ms,95%): 253.35 err/s: 0.00 reconn/s: 0.00 [ 106s ] thds: 16 tps: 191.99 qps: 3882.77 (r/w/o: 2716.84/781.95/383.98) lat (ms,95%): 350.33 err/s: 0.00 reconn/s: 0.00 [ 107s ] thds: 16 tps: 224.01 qps: 4524.30 (r/w/o: 3136.20/940.06/448.03) lat (ms,95%): 308.84 err/s: 0.00 reconn/s: 0.00 [ 108s ] thds: 16 tps: 188.98 qps: 3630.68 (r/w/o: 2553.78/697.94/378.97) lat (ms,95%): 337.94 err/s: 1.00 reconn/s: 0.00 [ 109s ] thds: 16 tps: 238.02 qps: 4836.48 (r/w/o: 3405.34/955.10/476.05) lat (ms,95%): 183.21 err/s: 0.00 reconn/s: 0.00 [ 110s ] thds: 16 tps: 169.00 qps: 3379.00 (r/w/o: 2350.00/691.00/338.00) lat (ms,95%): 356.70 err/s: 0.00 reconn/s: 0.00 ・・・ --report-interval=1 指定した時間毎(秒)の結果を出力。 時間経過によるスコアの安定性を確認できる。 ↑ TPS ↑ QPS ↑ Response Time
  • 46. 46 IDC Frontier Inc. All rights reserved. sysbench 測定に便利なオプション② 41.104 |******* 1443 41.851 |********* 1762 42.611 |********** 2096 43.385 |************ 2516 44.173 |**************** 3161 44.976 |******************** 3993 45.793 |************************* 5130 46.625 |****************************** 6021 47.472 |************************************ 7220 48.335 |*************************************** 7961 49.213 |**************************************** 8120 50.107 |************************************** 7758 51.018 |************************************** 7637 51.945 |********************************* 6789 52.889 |***************************** 5937 53.850 |************************* 5119 54.828 |******************** 4144 55.824 |***************** 3528 56.839 |************** 2779 57.871 |************ 2355 58.923 |********** 1990 --histogram=on Laytency (Response Time)の 分布を確認できる。
  • 47. 47 IDC Frontier Inc. All rights reserved. sysbench のデータサイズ --table-size データベースサイズ [MB] 10000 2.8 100000 23 1000000 230 10000000 2,131 --tables データベースサイズ [MB] 1 230 2 439 4 890 8 1,655 --tables 1 のとき --table-size 1000000 のとき テーブル数×テーブルサイズでデータサイズが決まる メモリ上に乗り切るデータサイズだと → 主にCPUに負荷がかかる CPU-bound メモリ上に乗り切らないデータサイズだと → 主にディスクI/Oに負荷がかかる I/O bound
  • 48. 48 IDC Frontier Inc. All rights reserved. tpcc-mysql
  • 49. 49 IDC Frontier Inc. All rights reserved. tpcc-mysql は良いぞぉ~  TPC-Cを参考にOSS実装  卸売業を参考とした在庫管理のフロー  実際の業務を模し、複雑な負荷をかける ことが可能  wharehose(倉庫)パラメータでデータ 規模を指定可能  ディスクI/Oにガツンと負荷をかけられる
  • 50. 50 IDC Frontier Inc. All rights reserved. tpcc-mysql インストール 1. 【Debian/Ubuntu】ビルドに必要なパッケージのインストール 1. 【RHEL/CentOS】ビルドに必要なパッケージのインストール 2. 【共通】ビルド apt install git gcc make mysql-client libmysqlclient-dev -y 最新の情報はこちら https://github.com/Percona-Lab/tpcc-mysql yum install git gcc make mariadb mariadb-devel -y git clone https://github.com/Percona-Lab/tpcc-mysql.git cd tpcc-mysql/src make cd ..
  • 51. 51 IDC Frontier Inc. All rights reserved. tpcc-mysql インストール 3. データベース(tpcc)作成 4. テーブル作成 5. データ作成 6. インデックス作成 mysqladmin -u <user> -h <host> --password=<password> create tpcc mysql -u <user> -h <host> --password=<password> tpcc < ./create_table.sql ./tpcc_load -h <host> -d tpcc -u <user> -p <password> -w 50 mysql -u <user> -h <host> --password=<password> tpcc < ./add_fkey_idx.sql ※ -w はデータサイズ規模(warehouse)
  • 52. 52 IDC Frontier Inc. All rights reserved. tpcc-mysql を実行する前にバックアップ 同じ測定を複数回実施したいとき、 データ作成に時間かかるので、 データ・インデックス作成後、測定開始前に バックアップをとることをおススメです。 1. ダンプ  mysqldumpやxtrabackup  DBサービス起動したまま可能  時間かかる 2. コールドバックアップ  サービスを停止してdatadir下をコピー  高速なのでオススメ DBへのwriteクエリ等の更新や挿 入があるとDB内のデータが変わる ため、2回目実行しても同じ結果が 得られない
  • 53. 53 IDC Frontier Inc. All rights reserved. tpcc-mysql 実行例 測定 -w warehouse データ規模 -c connections 同時接続数 -l running_time 測定時間(秒) -i report_interval 指定した時間毎に結果出力(秒) -r warmup_time 測定前のウォームアップ時間(秒) ./tpcc_start -h <host> -P 3306 -d tpcc -u <user> -p <password> -w 50 -c 32 -l 600 -i 60 -r 0
  • 54. 54 IDC Frontier Inc. All rights reserved. tpcc-mysql デモ StandbyActive Client RDBRDB MySQL IDCFクラウド RDB IDCFクラウド コンピューティング tpcc-mysql
  • 55. 55 IDC Frontier Inc. All rights reserved. tpcc-mysql 測定結果 <Constraint Check> (all must be [OK]) [transaction percentage] Payment: 43.48% (>=43.0%) [OK] Order-Status: 4.35% (>= 4.0%) [OK] Delivery: 4.35% (>= 4.0%) [OK] Stock-Level: 4.35% (>= 4.0%) [OK] [response time (at least 90% passed)] New-Order: 99.99% [OK] Payment: 100.00% [OK] Order-Status: 100.00% [OK] Delivery: 100.00% [OK] Stock-Level: 99.99% [OK] <TpmC> 38179.102 TpmC ← TPM
  • 56. 56 IDC Frontier Inc. All rights reserved. tpcc-mysql 測定結果(定期レポート) 60, trx: 7121, 95%: 402.806, 99%: 601.046, max_rt: 1103.069, 7130|425.495, 713|238.339, 712|895.679, 706|1166.206 120, trx: 5190, 95%: 601.766, 99%: 2539.417, max_rt: 4962.138, 5194|4072.930, 519|283.796, 519|4984.786, 521|1420.736 180, trx: 4264, 95%: 1121.245, 99%: 1595.299, max_rt: 3258.285, 4261|2299.293, 428|202.829, 423|3301.626, 428|1344.811 240, trx: 6025, 95%: 765.965, 99%: 982.879, max_rt: 1238.932, 6023|946.613, 602|93.649, 603|1507.521, 603|661.941 300, trx: 6534, 95%: 700.597, 99%: 894.169, max_rt: 1066.967, 6531|888.620, 652|55.833, 652|1168.198, 654|753.374 360, trx: 5898, 95%: 769.873, 99%: 1094.713, max_rt: 1373.785, 5904|1170.824, 591|246.228, 592|1492.686, 591|824.014 420, trx: 4522, 95%: 880.885, 99%: 1048.842, max_rt: 1249.462, 4521|1029.945, 453|77.874, 452|1678.444, 453|774.947 480, trx: 5127, 95%: 876.939, 99%: 1112.885, max_rt: 1448.340, 5121|1298.610, 512|79.652, 512|1643.632, 514|663.227 540, trx: 5927, 95%: 976.720, 99%: 1243.228, max_rt: 1404.741, 5921|1307.893, 592|74.536, 592|1695.186, 593|1121.459 600, trx: 6857, 95%: 796.121, 99%: 1072.656, max_rt: 1295.642, 6854|1228.602, 686|247.134, 685|1583.367, 678|774.220 … -i 60 指定した時間毎(秒)の結果を出力。 時間経過によるスコアの安定性を確認できる。 ↑ Transactions ↑ Response Time
  • 57. 57 IDC Frontier Inc. All rights reserved. tpcc-mysql のデータサイズ warehouse データベースサイズ[GB] 50 3.5 100 7.0 500 35.4 1000 71 1500 107 warehouseを大きくして I/O bound に負荷をかけよう
  • 58. 58 IDC Frontier Inc. All rights reserved. Case Study
  • 59. 59 IDC Frontier Inc. All rights reserved. Case 1 性能比較 次に開発する新規サービスは、クラウドサービスのDBaaSを使ってみよう。 でも、マシンタイプ色々あってどれにしよう。 1. 想定の負荷を仮定する tpcc-mysqlの方が負荷大き目 【sysbench】 --threads=16 --tables=8 --tables-size=100000 --time=3600 oltp_read_write 2. 各マシンタイプにて同じ設定で計測 ※クライアントのスペックは大き目を用意しておく (ここでは highcpu.L8) 【tpcc-mysql】 -w 500 -c 32 -l 3600 -r 0
  • 60. 60 IDC Frontier Inc. All rights reserved. Case 1 性能比較:応用 各社サービス間の比較も可能 【ポイント】 ・apples to apples CPU/メモリ 冗長化設定 リージョン/ゾーン
  • 61. 61 IDC Frontier Inc. All rights reserved. Case 2 時間経過による性能の変化 最終的なベンチ結果のみだけでなく、 時間経過による影響も確認したい。 1. 測定時にレポート設定 毎秒表示のときは1、毎分は60。 【sysbench】 --report-interval=1 【tpcc-mysql】 -i 1 2. 対象の列を抜き出してグラフ化 ※tpcc-mysqlで60秒の例
  • 62. 62 IDC Frontier Inc. All rights reserved. Case 2 時間経過による性能の変化:応用 動的なスペックアップも 確認可能
  • 63. 63 IDC Frontier Inc. All rights reserved. Case 3 ディスクI/O性能 超速いSSDを手に入れたぞ。 I/Oに負荷がかかった状態でどれくらい速いのかな。 1. tpcc-mysqlが複雑な処理なのでベター 2. warehouseを大きくする ここでは –w 1500 ※my.cnfでI/O周りのチューニング入れる
  • 64. 64 IDC Frontier Inc. All rights reserved. Case 4 MySQLのパラメーター よし、MySQLをベンチマークするぞ。 MySQLのconfigどうしよう・・・ innodb_flush_method=O_DIRECT innodb_write_io_threads=16 innodb_read_io_threads=8 innodb_io_capacity=10000 1. ベストは、本番時に利用予定のもの や社内で決まっているもの 2. なければ、ほぼデフォルトにして、 innodb_buffer_pool_sizeを設定し ておく(搭載メモリの7割前後) 3. 高速なSSDであれば、I/O周りの設 定を入れておく 例→
  • 65. 65 IDC Frontier Inc. All rights reserved. Case 5 同時接続数 メニーコアCPU搭載サーバーを手に入れたぞ。 CPUコアが多いってことは、並列数(同時接続数)も多くさばけるよね。 Percona Database Performance Blog https://www.percona.com/blog/2018/07/11/amd-epyc-performance-testing-ps-systemd/ 1. 同時接続数を指定して測定する 【sysbench】 --threads=512 【tpcc-mysql】 -c 512 2. 同時接続数を変更し、測定を繰り返す 4, 8, 16, 32, 64, 128, 256, 512など
  • 66. 66 IDC Frontier Inc. All rights reserved. DBのベンチマークに興味をもったあなたへ https://www.percona.com/blog/  最新のハードウェアやMySQLの情報  ベンチマークツールの紹介  sysbench-tpcc
  • 67. 67 IDC Frontier Inc. All rights reserved. むすび DBのベンチマークができるようになったら練習兼ねて、 IDCFクラウド上でお試しください。  IDCフロンティアもブース出展中  IDCFクラウド RDB の無料キャンペーンは7末まで
  • 68. 68 IDC Frontier Inc. All rights reserved. IDCFクラウドのJTF向けクーポン 金額:1万円 クーポンコード:<会場限定> 登録期限:7月28日~8月31日 有効期限:(登録日から)3か月
  • 69. 69 IDC Frontier Inc. All rights reserved. Happy benchmarking!