IVP Internet Value Provider IVP Co. Ltd.IVP Internet Value Provider IVP Co. Ltd.

  • タイトル

パフォーマンス診断 (自社製品ERS_V6.5) 第4回 負荷試験の結果と考察

 | 

前回までで負荷試験の目的や方法などを記載しました。今回以降は試験の結果と考察などを記載していきます。

同時接続数を基準とした試験を実施しました。

試験結果 (単体試験)
単体試験

試験方法

前回までの説明で触れたことですが、改めて試験方法を説明します。

負荷試験機にはJmeterを使用。試験パターンも3つのプロセスに分けてテストを実施します。
各項目毎に同時接続数を増やしていく方法を取りました。

1.TOPページの表示(画像ダウンロード含む)
2.商品詳細検索画面より1キーワードを入力し、10万件のテストデータから1111件抽出する処理の実行
3.購入処理(一連の購入処理のプログラムを実行)

※先述のとおり各テストケースには文言チェックを入れ、あるべき応答ページが返されない場合にはエラーとして検知するようにしました。

負荷試験機にて上記3パターンの試験をし、同時可能接続数を計測しました。
※同時可能接続数とは平均3秒以内のレスポンスが期待できる同時セッション数を結果とします。

試験結果

同時可能接続数
表1

スレッド数はJmeterのスレッド数なので、ユーザー数と言い換えるとわかりやすいと思います。
スループット、KB/sec はサーバーから転送された データー量です。ですのでこの数値が頭打ちすると性能も頭打ちと考えれます。

○1台構成時 (Windowsサーバー1台で postgresもWindowsにインストールして使用)

表2

○考察
上記の表について説明していきますトップページ、 40スレッドからKB/secが伸びていないことがわかります
これは画像などのデータが大きいためだと考えられます。
ですのでトップページは回線がボトルネックになりやすいのでアクセスに耐え切れなくなった場合まず回線から考慮する必要があると言えます。

商品検索については10スレッドでCPUを93%使用してしまってしまいました。
42スレッドまでレスポンスタイムも3000ms以内に収まっていますが、CPUが40アクセスで100%使用されているので
40スレッドまでを採用します。
商品検索がボトルネックになればCPUの増強を考慮する必要があると言えます。

購入 (伝票の作成) については
14スレッドでレスポンスタイム 2792ms と許容範囲ぎりぎりでしたので14スレッドを限界と設定します。
CPUは 80.9%ですが、Wait は3.86と大きな数字を出していました。
表をみてこの結果をみても、アクセスが増えてもCPUの使用が使い切っていなかったりしたのですが
わかりずらいですが、待ちプロセスが増えているので処理が溜まっている状態はつかめました。
CPU使用率の最大値がすでに100%に達したので処理待ちになったためこのような数字になったと考えられます。
購入がボトルネックになればCPUの増強を考慮する必要があると言えます。

一台構成の場合は
1秒間にトップページだけなら 70アクセス、検索は42アクセス、購入は14アクセスいう結果になりました。

これだけこなせれば規模が大きくなかったり、急激なアクセスの増加がないサイトであれば対応できそうです。
現在一台構成 でIISとDBが同居しているため、負荷をアプリケーションや仕組みごとに切り分けて考えるのも難しいですし、サーバー台数を増やして対応することが多いので2台構成でテストを続けます。

○2台構成時 (WindowsサーバーにIIS CentOS(Linux)サーバーにpostgresをインストールして使用)
複数試験

試験結果

同時可能接続数
表3

表4
※TOPページの際、DBサーバーはほとんどCPUなどを消費されていなかったので未記載です。

○考察
1台構成の時とも比較したいので改めて結果を下記に記載します。
表5拡大

まず、トップページですが1台構成の時も2台構成の時も結果が変わりません。
これは回線が問題になるのでサーバーが追加されてもボトルネックが解決出来なかったためだと考えられます。
次に商品検索ですが、WEBサーバーのCPU使用率が秒間20アクセスで100%使用されている状態が出てきています。
秒間55アクセスまでは3000ms 以内にレスポンスがあったので55アクセス数を限度としました。
DBサーバーは待ちタスクなどがほぼない状態だったのでボトルネックはWEBサーバーのCPUと考えれます。
購入についてもほとんど1台構成の時と変化がありません。商品検索と同じくWEBサーバーのCPUがボトルネックになっていると考えれます。

1台構成の時と2台構成の時であまり変化がありませんでした。
特にWEBサーバーのCPUと回線が問題になると考えられるので回線の増強とWEBサーバーを増強して

アクセス数に対応させます。