本手順は、ATRS-batchおよび、「サンプルアプリケーション(ATRS-batch)マニュアル」(利用マニュアル)の内容を把握していることを前提とします。 ATRS-batchの資材や利用マニュアルに記載されている内容については説明を省略します。
※ 本手順で記載しているディレクトリ中のバージョンや「xxx」については適宜読み替えてください。
実行環境で利用するOS・ソフトウェアは以下の通りです。
- OS : CentOS Linux (release 7.4.1708)
- JDK : OpenJDK (1.8.0_151)
- RDBMS : PostgreSQL (9.6.5)
- Build Tool : Apache maven (3.3.9)
※ ()内は動作確認時のバージョンを表します。
システム構成は利用マニュアルの「5.2 システム構成」を参照してください。
以下の資材をバッチサーバ上の任意のディレクトリに配備します。
- atrs-batch
- ATRS-batchのプロジェクト
- macchinetta-batch-performance-test
- AP検証資材(※)
※ 動作確認を実施するにあたり、以下コメントアウトして実施しております。
1. modules/collect_func.sh (copy_db_log内)
ssh -p ${DB_SSH_PORT} ${DB_MASTER_NAME}@${DB_IPADDRESS} "source ${DB_PATH_SOURCE_FILE_PATH};pg_ctl -D ${DB_CLUSTER_LOCATION} stop"
⇒ DBサーバ停止後、バックアップファイルからDBクラスタを展開しているが、バックアップファイルが無くDBクラスタを作成できないためDBサーバは停止しない
2. modules/collect_func.sh (copy_db_log内)
end_if_error $? "サーバ${DB_IPADDRESS}におけるDBサーバの停止に失敗しました"
⇒ 1.でDBサーバの停止を行わなくなるためコメントアウトする。
3. modules/main_func.sh (init_db_condition内)
check_db # DBの動作状態確認
⇒ 1.でDBサーバ停止を行わなくなり、check_dbを実行するとエラーとなってしまうためコメントアウトする。
4. modules/main_func.sh (init_db_condition内)
clear_db # DB初期化
⇒ 1.のとおり、DBクラスタのバックアップファイルが無く、初期化できないためコメントアウトする。
5. modules/main_func.sh (collect_result内)
move_local "${HEAPSTATS_PATH}" "${1}" # HeapStats情報ファイル
⇒ 該当ファイル(HeapStats情報ファイル)が存在しない&作成箇所も見当たらないためコメントアウトする
6. modules/main_func.sh (collect_result内)
move_local "${GC_PATH}" "${1}" # GCログ
⇒ 該当ファイル(GCログ)が存在しない&作成箇所も見当たらないためコメントアウトする
検証に必要なデータを配備します。
※ 動作確認時はATRSサンプルアプリケーションに同梱のデータを利用しています。
検証目的に応じて、データ量の異なる検証データ(3パターンまで対応)を用意します。 用意する検証データのパターン数に応じて、「3.2. 起動オプションの変更」でデータ量番号を適宜設定してください。
配備する検証データは以下の通りです。
- DDL/DML
atrs-batch/sql/postgresディレクトリ配下に必要に応じてsize1~size3のディレクトリを作成し 作成したディレクトリ配下にそれぞれ以下のSQLを配備します。 - 00000_drop_all_tables.sql
- 00100_create_all_tables.sql
- 00200_insert_fixed_value.sql
- 00210_insert_route.sql
- 00220_insert_flight_master.sql
- 00230_insert_member.sql
- 00240_insert_peak_time.sql
- 00250_insert_flight.sql
- 00260_insert_reservation.sql
(例) データ量の異なるデータをを2パターン用意する場合
atrs-batch/sql/postgres/
├ size1/
│ ├ 00000_drop_all_tables.sql
│ ├ …
│ └ 00260_insert_reservation.sql
└ size2/
├ 00000_drop_all_tables.sql
├ …
└ 00260_insert_reservation.sql
- 非同期実行用SQL
atrs-batch/sql/postgresディレクトリ配下に 非同期実行の際にジョブ要求テーブルにレコードを挿入するinsert_job_data.sqlを配備します。
atrs-batch/inputOrgディレクトリ配下に必要に応じてデータ量の異なるフライト情報更新ファイルを FlightUpdate_size1.csv~FlightUpdate_size3.csvのファイル名で配備します。
(例) データ量の異なるデータをを2パターン用意する場合
atrs-batch/inputOrg
├ FlightUpdate_size1.csv
└ FlightUpdate_size2.csv
以下の環境差分情報を実行環境に合わせて変更します。
- atrs-batch/src/main/resources/batch-application.properties
- admin.jdbc.url
- admin.jdbc.username
- admin.jdbc.password
- jdbc.url
- jdbc.username
- jdbc.password
- atrs-batch/scripts/aggregateReservation.bat
※aggregateReservation.shも同様- DB_HOSTNAME (DBサーバのIPアドレス)
- macchinetta-batch-performance-test/conf/condition.sh
- DB_IPADDRESS (DBサーバのIPアドレス)
- TEST_LOCATION (検証資材ディレクトリパス)
- SAMPLE_AP_LOCATION (サンプルアプリケーションのディレクトリパス)
- ACTION_LOG_LOCATION (サンプルアプリケーション動作ログのファイルパス)
- DB_SSH_PORT (DBサーバへSSH接続する際の指定ポート番号)
- LOCAL_SSH_PORT (ローカルサーバへSSH接続する際の指定ポート番号)
- DB_PSQL_PORT (DBサーバへpsql接続する際の指定ポート番号)
atrs-batchの格納ディレクトリに移動し、以下のコマンドを実行します。
$ cd xxx/atrs-batch
$ mvn clean dependency:copy-dependencies -DoutputDirectory=lib package
「BUILD SUCCESS」となることを確認してください。
targetディレクトリにatrs-batchのjarが出力されるため、このjarファイルをlibディレクトリにコピーします。
$ cp ./target/atrs-batch-[バージョン].jar ./lib
データベースを構築します。
DBサーバ上で以下のコマンドを実行し、PostgreSQLを起動します。
$ pg_ctl -w -D /var/lib/pgsql/9.6/pg_cluster start
以下のコマンドで起動されたことを確認してください。
$ pg_ctl -D /var/lib/pgsql/9.6/pg_cluster status
コマンド実行結果サンプル
$ pg_ctl -w -D /var/lib/pgsql/9.6/pg_cluster start
サーバの起動完了を待っています....< 2017-11-30 16:48:56.489 JST > LOG: ログ出力をログ収集プロセスにリダイレクトしています
< 2017-11-30 16:48:56.489 JST > ヒント: ここからのログ出力はディレクトリ"pg_log"に現れます。
完了
サーバ起動完了
$ pg_ctl -D /var/lib/pgsql/9.6/pg_cluster status
pg_ctl: サーバが動作中です(PID: 7524)
/usr/pgsql-9.6/bin/postgres "-D" "/var/lib/pgsql/9.6/pg_cluster"
以下のコマンドでpsqlを起動します。
$ psql -U [ユーザID]
パスワードを入力します。
以下のSQLでデータベースを作成します。
# create database atrs_batch with encoding = 'UTF8';
「\q」を入力し、psqlを終了します。
以下のコマンドを実行し、DBに接続できることを確認します。
$ psql -p [ポート番号] -h [ホスト名] -U [ユーザID] -d [データベース名] -c 'SELECT 1'
パスワードを入力します。
※ ポート番号および、ホスト名はバッチサーバとDBサーバが別サーバ構成となっている場合に指定してください。(同一サーバの場合は不要です)
実行結果サンプル
# psql -p 12722 -h 10.0.2.2 -U postgres -d atrs_batch -c 'SELECT 1'
?column?
----------
1
(1 行)
※ DBサーバとバッチサーバが別サーバ構成の場合に接続確認が出来ない場合は、DBサーバ側のアクセス権限等をご確認ください。
検証スクリプトを実行します。
検証資材の格納ディレクトリに移動します。
$ cd xxx/macchinetta-batch-performance-test
起動オプションで検証種別、データ量番号、試行回数を変更できます。
検証目的に応じて、以下の値をスクリプト内に記載の設定例を参考に適宜変更してください。
- conf\condition.sh
- TEST_KIND (検証種別)
- TEST_DATA_AMOUNT (データ量番号)
- TEST_TIME (試行回数)
※ 動作確認時はATRSサンプルアプリケーションに同梱のデータを利用しているため、データ量番号=("1")、試行回数=1で実施しております
以下のコマンドを実行して検証を開始します。
$ bash bin/performance_test.sh
検証スクリプトの実行結果を確認します。
conf\condition.shのRESULT_LOCATIONに指定したディレクトリにログが出力されていることを確認します。
- ログディレクトリ名
- testYYYYMMDDHHmmss 配下に「1_1_1_1」~「27_3_3_3」の名称で検証回次ごとのディレクトリが存在し、各ディレクトリにatrs-batch-application.logなどのログファイルが出力されていること