運用中のシステムに対して負荷テストを実施する場合、事前に現状の調査をすることが重要です。適切な調査ができると、無駄な工数を消費せずに、最短で目的達成へ進むことができます。この記事では、現状調査でどのようなポイントを調査すると良いかをまとめていきます。
インフラ的観点
まずは、インフラ観点から調査ポイントをまとめていきます。問題が発生した時に、インフラがどのような状況になっていたかの確認が必要です。
- 各種リソース状況
- アクセス状況
- 各種ログ情報
各種リソース状況
各サーバ等のリソース状況を確認していきます。
事後の調査では「sysstat(sar)」が役に立ちます。「sysstat」では、CPUやロードアベレージ、メモリ、転送量などを、過去に振り返って確認することが可能です。リソース状況を見ることで、大まかにどのサーバが頭打ちになっているのかを把握することが可能です。
デフォルトではインストールされていないことが多いので、インストールをしておきましょう。また、次の設定をいれておくと良いでしょう。
- 取得間隔:10分→1分
- 保存期間:7日→28日
保存間隔が短めなので、早めにデータを退避しておく必要があります。
アクセス状況
WEBサーバなどから出力されるアクセスログも重要な調査ポイントです。アクセスログの調査から次の把握が可能です。
- 分間(または秒間)アクセス件数の推移
- 分間(または秒間)平均応答速度の推移
- 分間(または秒間)応答ステータスコード件数の推移
アクセスログは1リクエスト1行の形式でログが出力されていきます。そのため、ログの解析が必要となります。具体的な解析方法については、下記参考ページをご覧ください。
また、デフォルトでは応答速度の出力がされないので、あらかじめログ出力形式の変更しておくことをおすすめします。こちらの方法についても下記を参照ください。
もっと詳しく->アクセスログを時系列で可視化する方法
もっと詳しく->アクセスログから各リクエストの詳細情報を取得する
各種ログ情報
アクセスログ以外にもアプリケーションから出力されるログについても確認が必要です。
適宜ログをピックアップして確認していいましょう。
システム的観点
次に稼働しているシステムがどのようなシステムなのかを把握する必要があります。こちらはお客様や開発会社様の支援を受けて進める必要があります。
- システムの特性
- システム全体像
- アクセス状況
システムの特性
システムの特性は、誰がどのように利用して、どんな処理をするシステムかを確認していきます。
主な確認ポイントは次のようなものになります。
- 利用ユーザ
- アクセス傾向
- 処理内容
社内や特定の人物が利用するのか、それとも不特定多数のユーザが利用するかによってアクセスの傾向は大きく異なります。
また、同じ月間100万PVでも、平均的にアクセスが発生しているサイトか、期間限定イベントなどで短期間に100万PVを稼ぐサイトでは全く異なる対策が必要となります。
htmlを返却するだけのシステムや長時間動画を配信するサイト、会員制のサイトでは負荷のかかり方が大きく異なります。
システム全体像
システムの全体像を確認することも必要です。
- 利用クラウド
- ネットワーク構成
- サーバ構成
- ハードウェア構成
- 他システムとの連携有無
利用中のクラウドや環境の構成や制約事項を確認しておきましょう。
他システム連携部分がボトルネックになっているケースや負荷テストを禁止しているケースもあるため、多システム連携部分についても洗い出しておきます。よくある例としては、決済モジュールやCDN、レコメンドエンジンなどです。
データ件数や増加の推移
データ件数の増加によって急激に性能の問題が発生するケースが多くあります。システムのつくりによる部分が原因になりますが、事前にできるのであればデータの件数や増加の推移についてもチェックしておきます。
アクセス状況
GoogleAnalyticsなどのアクセス状況についても確認しておきます。後述するアクセスログでも確認はできますが、データの取得方法がことなるため、複合的に確認できるとより良い考察が可能です。
まとめ
この記事では現状調査のポイントについて解説しました。
必要なログが残っており、適切な調査ができると、どのようなアクセスが発生し、どこかボトルネックになりそうかの当たりをつけることが可能です。その情報をもとに負荷テスト設計へと進んでいくことができます。反対に、じゅぶんな情報が取得できないと、設計や実施で場当たり的な対応が多くなり、大きな時間がとられることになります。
最終的な時間短縮のためにも、可能な限り事前調査は行うようにしましょう。
参考.
全体的な負荷テストの進め方が気になる方は、「負荷テストの進め方」をご覧ください。