今回は以前の「性能試験について(性能試験とは編)」の続きで、性能試験の準備や実施方法、試験実施時の注意点などを紹介したいと思います。 gsol.hatenablog.com
事前準備
データの作成について
性能試験を実施するには、試験で使用するデータを作成する必要があります。データは以下のようなツールを使用して作成します。
業務データについてはアプリ担当者と相談して準備します。準備するデータは大きく2つの種類に分けられます。
- 実際の処理で使用されるデータ
- 準備方法:負荷試験ツールを用いて実際の処理を重ねてデータを増やしていく。
- 負荷のために単純にデータの母数を増やしたいためのダミーデータ
- 準備方法:プロシージャを登録して、元データをselect insertして増やしていく。
シナリオの選定について
シナリオの選定は以下のような基準で選定します。
- 利用率の高かったり、お客様から要望のあった業務フロー
- アクセスログ等から解析して利用率上位
- 新機能を対象とする
AWS環境を利用する際に必要な申請
AWS環境で負荷試験をする場合は事前に申請しておく必要があります。申請は2つあります。
負荷試験を行う旨と試験の内容(予測されるピーク時のリクエスト数や利用するAZの情報、トラフィックの傾向とともに予想される最大・最少アクセスの時間等)についての申請
- 事前申請が必要とされる負荷試験は、EC2に対して1 分を越えて継続する、1 Gbps (10 億ビット/秒) または 1 Gpps (10 億パケット/秒) を超える負荷を実施する場合で、外部からの攻撃ではなく性能試験を実施することを報告する必要があります。
- ただし、提示されている負荷条件に達している場合に申請するものであるため、条件を満たさない場合には事前申請は不要です。
ロードバランサーの暖気申請
試験実施
負荷試験ツール
負荷試験で使用するツールは、基本はフリーで事例が多いJmeterを使用します。Jmeterはプラグインが充実しているので便利です。
Jmeter以外にも様々な製品はありますが、有償でライセンスが必要であったり使い勝手が難しいものあったりするため、比較的使いやすいJmeterを使用する事が多いです。
負荷をかける時間
負荷をかける時間は、特に決まっているわけではないのでお客様と相談の上で決めます(大体はこちらで提案します)。
数時間負荷をかけ続ける場合もあれば、20~30分間で行う場合もあります。
試験の実施時間帯
ケースバイケースでお客様や環境によって、業務終了後/夜間/休日/平日の日中の時間帯で実施したりします。
試験実施時の注意事項
連携先のシステムや外部Webサービスの制限事項にも注意
- 連携先のシステムが短時間での高負荷を禁止しており、試験が実施できないという場合もあります。
Jmeterで負荷をかける時の注意事項
チューニング(アプリケーション以外)
アプリケーション以外でのチューニングとしては、主に以下のような対応があります。
- WEBサーバ
- 帯域制限がある場合は、WEBサーバでコンテンツ圧縮対応を実施する。
- DBサーバ
- OracleDB内のバッファキャッシュのメモリサイズが不足して物理読み込みが多いため、メモリ割り当てサイズを上げる。
- クラウド環境
おわりに
性能試験はチューニング及び再試験の対応を想定して、余裕を持ってスケジュールを組みましょう!
性能問題が発生した際は、チューニングや再試験が必要になります。 問題が発生する前提で、余裕を持ったスケジュールを立てて性能試験に臨みましょう。性能試験のスケジュールが遅れた場合、その遅れがプロジェクト全体の遅れにつながってしまいます。
性能試験は必ず実施しましょう!
性能試験は試験の計画に含め、必ず実施しましょう。 もし試験を実施せずに本番システム稼働を迎え、稼働後に性能問題が発覚した場合、業務に多大な影響を与えてしまうことになります。