コスパのいいストレージはなに? iSCSI検証 (4) tpcc-mysqlによる負荷試験

お疲れ様です。ソリューションビジネスグループの國分です。

 

環境作り終わりました! という吉村さんから連絡を頂いたので、

ではではと、メールに送付されていた検証環境の論理・物理構成図を開きました。

 

image03

 

……ん?

そうか、私の読解力が足りないのだな、とiSCSI関連のブログを一から見直してみました。

 

①後野さん作 構成図

image_01

②吉村さん作 構成図

 

image03

 

……せっかくなので、この2つの図の対応図を作ってみました。

 

③國分 作

20141006135741

 

こんな感じですかね!

以降、③の表を元に説明して行きたいと思います

 

 

各サーバの役割

①-2 test02  (192.168.12.156)

  • tpcc-mysqlをインストールするサーバ
  • test03のMariaDBサーバへリモート接続後、負荷試験用データを送り込む

 

①-3 test03  (192.168.12.157)

  • MariaDBサーバ
  • ①にマウントされているiSCSIストレージを、test03のHDDの収容先とする

 

②  test01  (192.168.12.159)

  • iSCSIターゲットとなるサーバ
  • test03をiSCSIイニシエータとする
  • iSCSIストレージの大きさは100G程度

 

では、この役割を念頭に

今回のお題、tpcc-mysqlを使った負荷試験の説明をしていきたいと思います。

 

 

tpcc-mysqlとは?

 

まずはtpcc-mysqlについてです。

メジャーだよ! と後野さんに力強く言われたものの、グーグル上でも情報が少なかったので、

地道に調べてみました。

 

・データベースの性能の計測ならば 『TPC-C』

 

TPC……Transaction Processing Performance Council

「トランザクション処理性能評議会」の略。コンピュータ関連の有力企業が集まり、

実際のシステムに近い性能指標を作成する目的で設立された非営利団体。

TPCによって策定された指標(ベンチマーク)にはTPC-A,B,C,Dの4種類があるが、

A,Bの2種類は現在ではほとんど利用されておらず、Cが主に利用されている。

 

・tpcc-mysql のWebサイト (https://code.launchpad.net/~percona-dev/perconatools/tpcc-mysql

本家に解説がない……。

こちら tpcc-mysqlによるMySQLのベンチマーク – SH2の日記 情報ですと、

TPC-CをMySQL向けに簡易実装したのがtpcc-mysqlということだそうです。

 

 

tpcc-mysqlでどんなことができる?

 

詳しくはこちら  tpcc-mysqlによるMySQLのベンチマーク – SH2の日記 を参考にして頂くとして、

 

簡単に説明しますと、

①テスト用のデータベースとテーブル及びテーブル内データを自動作成してくれて、

→create_table.sql,add_fkey_idx.sql,tpcc_loadでダミーデータを作成

②そのデータベースにいろんなSQLコマンド(INSERT、UPDATE等)でアクセスしてくれて、

tpcc_startにてデータに多量なアクセスを行う

③そのアクセス(データ書き込み、読み込み、参照等の動作)の速さを測定する。

アクセスされたデータベースのi/o速度を調査

といったことをしてくれます。

 

通常の業務にて

→クライアントがデータベースにアクセス 

→データベースサーバが内部であれこれ行う 

→サーバがクライアントに結果を返す

という一連の動作をtpcc-mysqlが代わり&それらの動作に掛かる時間を計測してくれる、というわけです。

 

 

 

tpcc-mysql負荷試験手順

では実際に今回構築された環境でtpcc-mysqlをインストールし、手順を確認しましょう。

試験の流れとしては以下の通りです

  1.  test02にtpcc-mysqlをインストール
  2.  test03にMariaDBサーバをインストール
  3.  test02でtpcc-mysqlのtpcc_loadを実行し、test03に試験用の初期データを送り込む(合計4G程度のデータとなるようにする)
  4.  test02でtpcc-mysqlのtpcc_startを実行し、test03のDBにINSERTやUPDATE等のトランザクションを行う

 

手順詳細

では手順を細かく見て行きましょう。

 

1, test02にtpcc-MySQLをインストール

 

 

☆コマンド bzr

Bazaar:バザール

・クロスプラットフォームの分散型バージョン管理システム
・CVSやSubversionにあるコマンドと同様、遠隔リポジトリサーバー無しで新しいプロジェクトを開始可能、管理が容易

 

tpcc-mysqlがインストールされたかどうかの確認方法

~/test/tpcc-mysql/配下にtpcc_load (データ生成プログラム)、tpcc_start (負荷生成プログラム)

があればOKです。

 

 

2, test03にMariaDBサーバをインストール

 

 

 

3, test02のtpcc-mysqlのtpcc_loadを実行、

test03に試験用の初期データを送り込む

(今回は合計4G程度のデータとなるようにする)

 

 

 

 

 

4, test02のtpcc-mysqlのtpcc_startを実行し、

test03のDBにINSERTやUPDATE等のトランザクションを行う

 

-w warehouse: 生成データサイズ

ロード時に指定したwarehouse表のレコード数を指定

-c connection: 同時接続数

実際の測定にあたってはconnectionを5、10、15、…と少しずつ増やしながらプログラムを何度も実行し、

スループットのピーク値を探す

-r rampup:測定開始までの助走時間(秒)

100WHの場合、300~900秒程度

-l  実行時間(秒)

7,200秒(2時間)が目安。面倒な場合は600秒(10分)程度

 

 

 

 

以上がtpcc-mysql負荷試験の手順となります。

 

では、次回はtpcc_startを実際に実行して、

データベースのi/oのスピードとHyper-Vが正常にレプリケーションを行っているかどうかを

検証したいと思います。

 

では今回はこの辺で。

Share on LinkedIn
LINEで送る
Pocket

吉村

吉村

クララオンライン グローバルビジネスストラテジー部でマーケティング担当として働いています。 クラウド関連技術と中国関連の情報をお届けしてます。 たまに DJ とかします。日本語RAPが大好きです。