ADB HOL #5-3 : OLTP系処理の実行、自動スケーリングの理解

Version 21

    る : チュートリアル : Oracle Cloud Infrastructure を使ってみよう

    >ADBコンテンツ一覧に戻るAutonomous Database ハンズオンラボ

     

     

    Oracle Exadataをベースに構成されるAutonomous Database(ADB)は、分析系の処理だけでなく、バッチ処理、OLTP(オンライン・トランザクション)処理といった様々なワークロードに対応可能です。

     

    この章ではOracle Databaseのベンチマークツールとして利用されることの多いSwingbenchを利用し、OLTP処理をATPで動かしてみます。

    併せて、データベースの負荷状況に応じて自動的にCPUをスケールさせる、自動スケーリング(Auto Scaling)の動作を確認します。

     

     

    作業の流れ

    1. Swingbenchをセットアップしよう
    2. Swingbenchのデータを確認しよう
    3. Swingbenchを実行し、OCPUをスケールアップしてみよう

     

     

    所要時間 : 約50分

     

     

    1. Swingbenchをセットアップしよう

    まずはSwingbenchを仮想マシン上にダウンロードし、ベンチマーク・データをADBインスタンス内に生成しましょう。

     

    参考情報)

         http://www.dominicgiles.com/blog/files/c84a63640d52961fc28f750570888cdc-169.html

     

    1. Tera Termを起動し、仮想マシンにopcユーザーでログインします。

     

    2. oracleユーザに切り替えます。

     

    $ sudo su - oracle

     

     

    3. 作業用ディレクトリに移動します。

     

    $ cd ~/labs/swingbench

     

     

    4. Swingbenchをダウンロードします。(数分程度かかります。)

    $ curl http://www.dominicgiles.com/swingbench/swingbenchlatest.zip -o swingbench.zip

     

    5. 展開します。

    $ unzip swingbench.zip

     

     

    6. (必要に応じて)念のためSQL*Plusでログインできることを確認します。

    $ export TNS_ADMIN=/home/oracle/labs/wallets

    $ sqlplus admin/Welcome12345#@atp01_tp

    SQL> exit

     

    7.  データ生成用のスクリプトを編集・実行します。

     

    7-1. vi で 1install.sh を開き、内容を確認、必要に応じて編集ください。特に以下に示した赤字の箇所に誤りがないかご注意ください。

    $ vi 1install.sh

     

     

    【1install.shの内容 】

     

    #!/bin/sh

     

    ./swingbench/bin/oewizard -cf ~/labs/wallets/Wallet_atp01.zip \

         -cs atp01_tp \

         -ts DATA \

         -dbap Welcome12345# \

         -dba admin \

         -u soe \

         -p Welcome12345# \

         -async_off \

         -scale 5 \

         -hashpart \

         -create \

         -cl \

         -v

     

     

    7-2. ファイルに実行権限を付与します。

    $ chmod +x 1install.sh

     

     

    7-3. スクリプトを実行し、データを生成します。

    $  nohup ./1install.sh &

     

         ADBインスタンス内にSOEスキーマが作成され、その中にSwingbenchで利用するオブジェクト、データが作成されます。

         データ増幅処理の処理時間短縮化のために、出来ればOCPU数は多めに設定ください。(状況に依存しますが、OCPU=4の場合、2、30分程度。)

         またデータ生成には多少なり時間を要するため、nohupコマンドを利用します。こうすることで、仮想マシンとのネットワーク通信が万が一切断されたとしても、仮想マシン上で本スクリプトの実行を継続することが可能です。

     

    7-4. 実行状況の確認します。

     

    $ tail -f nohup.out

     

     

    7-5.  以下のようにSchema Created が表示されたらデータ増幅の処理は完了です。CTRL + C で nohupコマンドを終了してください。

     

     

     

    2. Swingbenchのデータを確認しよう

    次にセットアップしたデータに問題がないか確認します。

     

    1. Tera Termを起動し、仮想マシンにログインします。

     

     

    2. oracleユーザに切り替えます。

     

    $ sudo su - oracle

     

     

     

    3. 作業用ディレクトリに移動します。

     

    $ cd ~/labs/swingbench

     

     

     

    4. vi で 2-1check.sh を開き、内容を確認、必要に応じて編集ください。

    $ vi 2-1check.sh

     

    【2-1check.shの内容 】

    1つ目の処理:val 生成したオブジェクト数を確認します。

    2つ目の処理:stats 統計情報を取得しています。Autonomous Databaseでは統計情報を自動取得していますが、ここではSwingbenchのセットアップマニュアルに従い実行しています。

    3つ目の処理:各表の件数を確認しています。

     

    #!/bin/sh

    ./swingbench/bin/sbutil -soe -cf ~/labs/wallets/Wallet_atp01.zip \

         -cs atp01_tp -u soe -p Welcome12345# \

         -val

     

    ./swingbench/bin/sbutil -soe -cf ~/labs/wallets/Wallet_atp01.zip \

         -cs atp01_medium -u soe -p Welcome12345# \

          -stats

     

    ./swingbench/bin/sbutil -soe -cf ~/labs/wallets/Wallet_atp01.zip \

          -cs atp01_medium -u soe -p Welcome12345# \

         -tables

     

    5. ファイルに実行権限を付与します。

    $ chmod +x 2-1check.sh

     

     

    6. スクリプトを実行し、実行結果を確認します。(統計情報の再取得も実施しているため数分程度かかります。)

    $  ./2-1check.sh

     

    以下のように表示されればOKです。

     

    7. ファイルに実行権限し、実行します。負荷がけ用のパラメータを調整しています。(特にエラー等が出なければOKです。)

    $ chmod +x 2-2pre.sh

    $ ./2-2pre.sh

     

    3. Swingbenchを実行し、OCPUをスケールアップしてみよう

    それではベンチマークツールを動かしてみましょう。OCPUをオンラインでスケールアップできること、スケールアップの前後でTPS(秒間のトランザクション数)を比較し、TPSが向上することを確認しましょう。

     

     

    1. 後続のシナリオのために、一旦、OCPU数を1に設定しておきます。

        必要に応じてこちらを参照ください。

     

     

    1. 作業用ディレクトリに移動します。(引き続き、oracleユーザで作業します)

     

    $ cd ~/labs/swingbench

     

     

     

    2. vi で 3execute.sh を開き、内容を確認・編集してください。特に以下に示した赤字の箇所に誤りがないかご注意ください。

    $ vi 3execute.sh

     

    【3execute.shの内容 】

    #!/bin/sh

     

    ./swingbench/bin/charbench -c ~/labs/swingbench/swingbench/configs/SOE_Server_Side_V2.xml \

             -cf ~/labs/wallets/Wallet_atp01.zip \

             -cs atp01_tp -u soe -p Welcome12345# \

             -v users,tpm,tps,vresp \

             -intermin 0 \

             -intermax 0 \

             -min 0 \

             -max 0 \

             -uc 64 \

             -di SQ,WQ,WA

     

     

    3. ファイルに実行権限を付与し、実行します。

    $ chmod +x 3execute.sh

    $ ./3execute.sh

     

     

    以下のように表示されればOKです。

     

     

    左から4列目のTPS(秒間のトランザクション数)の数字に着目ください。

    1分程度待って安定した時点での値を、この後の比較のためにメモしておいてください。

     

     

    4. OCPU数を1から2に増やしてください。

     

         Swingbenchは動いたままオンラインでOCPUをスケールアップできること、スケールアップ後にTPSが向上していることが確認できればOKです。

     

     

     

    5. 自動スケーリング(AutoScaling)を有効にするために、自動スケーリングにチェックを入れ、更新をクリックください。

     

     

         ここでもSwingbenchは動いたままオンラインで有効化できること、またTPSが向上していることが確認できればOKです。

     

     

    6. Swingbenchをするために、Enterキーを押すと終了されます。

     

     

     

    以上で、この章の作業は終了です。

     

    次の章にお進みください。

    ADB HOL #6-1 : Node.jsによるADB上でのアプリ開発