[Oracle Cloud] OCI Database(DBaaS)にSwingBenchで負荷がけしてみた

正月なので小ネタでもと思い、Oracle Cloud Infrastructure(略してOCI)のDBサービスであるOCI Databaseに対して、SwingBenchで負荷がけしてみました。

Oracle Cloudのコンセプトは、オンプレミスと同じ製品・同じアーキテクチャなので、SwingBenchについても基本的にはオンプレミスと同様の手順で利用できます。

とはいえ実際にやってみると、いくつかハマリポイントがあったので、簡単に手順を紹介します。

環境

・負荷がけ対象DB
サービス:OCI Database Virtual Machine
OS:Linux
DB:12cR2 Single

・クライアント
OS:Windows 7

 

 

手順

1.SwingBenchインストール

以下サイトより、最新の「SwingBench 2.6」をダウンロードして、インストール。
http://dominicgiles.com/downloads.html

インストール手順は任意のフォルダにzipファイルを解凍するだけなので、割愛。

※当初はクライアント用のノートPCだけにインストールしたのですが、後述の理由により対象DBサーバに対してもインストールしました。

なお、SwingBenchインストールにはjava8が必要ですが、OCI DB環境はデフォルトで利用可能となっていました。

$ java -version
java version “1.8.0_161”
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

 

2.oewizardを利用してデータ投入

クライアント側(Windows)でoewirzard2.batを利用してデータ登録しようとしたものの、DB接続後のデータ投入スクリプト実行中に「ORA-01017: invalid username/password; logon denied」が発生。

※DB接続自体は一旦成功するので、スクリプト内での再接続時に失敗していると思われるが、詳細までは未確認。
(Swingbenchがマルチテナント対応していないか、Oracle CloudへのPublic IP接続が影響しているのかなーと推測。あるいは環境固有の問題なのかも。)

 

このエラー自体はローカルから接続しちゃえば回避できると考えて、DBサーバ側にSwingbenchをインストールして続行することにしました。

 

DBサーバへのSwingBenchインストール後、binフォルダ内にあるoewizardを実行してデータ投入開始。

 

実行例)

[oracle@xxxxxx]$ ./oewizard -cl -create -cs <接続情報> -dbap <password> -p <soe password>

⇒-csでの接続情報はEZCONNECT形式(//<private IP>:<リスナーポート番号>/<サービス名>)で指定すればOK
⇒-dbapでsysスキーマのパスワード、-pでデータ登録先のSOEスキーマのパスワードを指定する
(SOEスキーマのパスワードを指定しないと、パスワード基準を満たさない旨のエラーが出るので注意)

 

SwingBench Wizard
Author : Dominic Giles
Version : 2.6.0.1090

Running in Lights Out Mode using config file : ../wizardconfigs/oewizard.xml

============================================
| Datagenerator Run Stats |
============================================
Connection Time 0:00:00.005
Data Generation Time 0:05:02.884
DDL Creation Time 0:01:40.992
Total Run Time 0:06:43.884
Rows Inserted per sec 39,970
Data Generated (MB) per sec 3.3
Actual Rows Generated 12,953,035
Commits Completed 669
Batch Updates Completed 64,788

Post Creation Validation Report
===============================
The schema appears to have been created successfully.

Valid Objects
=============
Valid Tables : ‘ORDERS’,’ORDER_ITEMS’,’CUSTOMERS’,’WAREHOUSES’,’ORDERENTRY_METADATA’,’INVENTORIES’,’PRODUCT_INFORMATION’,’PRODUCT_DESCRIPTIONS’,’ADDRESSES’,’CARD_DETAILS’
Valid Indexes : ‘PRD_DESC_PK’,’PROD_NAME_IX’,’PRODUCT_INFORMATION_PK’,’PROD_SUPPLIER_IX’,’PROD_CATEGORY_IX’,’INVENTORY_PK’,’INV_PRODUCT_IX’,’INV_WAREHOUSE_IX’,’ORDER_PK’,’ORD_SALES_REP_IX’,’ORD_CUSTOMER_IX’,’ORD_ORDER_DATE_IX’,’ORD_WAREHOUSE_IX’,’ORDER_ITEMS_PK’,’ITEM_ORDER_IX’,’ITEM_PRODUCT_IX’,’WAREHOUSES_PK’,’WHS_LOCATION_IX’,’CUSTOMERS_PK’,’CUST_EMAIL_IX’,’CUST_ACCOUNT_MANAGER_IX’,’CUST_FUNC_LOWER_NAME_IX’,’ADDRESS_PK’,’ADDRESS_CUST_IX’,’CARD_DETAILS_PK’,’CARDDETAILS_CUST_IX’
Valid Views : ‘PRODUCTS’,’PRODUCT_PRICES’
Valid Sequences : ‘CUSTOMER_SEQ’,’ORDERS_SEQ’,’ADDRESS_SEQ’,’LOGON_SEQ’,’CARD_DETAILS_SEQ’
Valid Code : ‘ORDERENTRY’
Schema Created
[oracle@xxxxx]$

 

3.swingbench.batを利用して負荷がけ

このままOCI DB上での負荷がけも出来るはずですが、手軽に利用できるWindows環境から負荷がけしてみます。

まずは、SwingBenchインストールフォルダ配下にある「winbat/swingbench.bat」を実行。

 

コンフィグファイルの選択画面が表示されるので、任意のものを選択して次へ。

以下のような画面が表示されるので、左上にある接続情報を適切に入力。

connect stringは先ほどと同じくEZCONNECT形式で入力すればOK。

ただし、今度はPublic IPを指定する必要があるので注意。
(VPN環境であればPrivate IPでも接続できるはず)

passwordは、oewizard 実行時に-pオプションで指定したSOEスキーマのパスワードを指定。

※もちろん、DBサーバのセキュリティリストでリスナーポート番号への接続許可を事前に設定しておくこと。

 

情報が正しければ、接続情報の横にある心電図のようなボタンでDBログインできます。

 

 

あとは、再生ボタンを押して負荷がけすればOK。

 

⇒無事、負荷がけ成功!

 

参考情報

・Swingbenchダウンロード
http://www.dominicgiles.com/swingbench.html

・Swingbenchを使ってみる
https://qiita.com/mon_tu/items/9ca9f50b69ca5ea4c18e

・SwingBenchの OrderEntry Wizard (oewizard)をコマンドラインモードで実行する
https://qiita.com/mon_tu/items/9d890e789f1a71f183a5

・SwingBench Reference and User Guide
http://dominicgiles.com/swingbench/swingbench21f.pdf

 

 

 

 

スポンサードリンク

1 Trackback / Pingback

  1. [Oracle Cloud] OCI DBaaS 関連情報まとめ(リンク集) – IT Edge Blog

Leave a Reply

Your email address will not be published.


*