目的の性能を定義する
負荷テストをはじめるためには、目的、つまり性能要件を明確にしておく必要があります。
ありがちなのは、「100人が同時アクセスしても大丈夫なこと」というような安直な要件をたててしまうことです。
性能の指標はスループットや平均応答速度なので、性能要件で定義される「性能」についてもスループットや平均応答速度で定義される必要があります。
たとえば、
100人が同時アクセスしても大丈夫なこと
という要件だった場合は、次のように定義しなおす必要があります。
* スループット:10PV/s
* 平均応答速度:3秒以内
* 平均応答速度:3秒以内
この記事では、どのように要件を整理していったらいいかをまとめます。
想定シナリオの確認
想定するシナリオを確認します。トップページのみアクセスされるシステムと、商品購入するシステムではユーザの動きが大きくことなります。
次のようなシナリオを想定していると仮定して話を進めます。
- トップページ
- 商品詳細
- カートへ入れる
- 購入手続き
- 購入確認
- 購入完了
この場合の、一人当たりのページビューは6PVです。
同時の定義を確認
「100人が同時」とは何でしょうか?本当に同時なのか、GoogleAnalyticsのリアルタイムアクセスを想定しているのか、深堀していく必要があります。
ここではリアルタイム検索で想定してみます。GoogleAnalyticsのリアルタイム検索は直近5分間のユーザ数を表しています。
つまり、5分間で100人のユーザが商品購入をしても耐えられること、ということができます。
想定スループットに変換する
さらに秒間のアクセス数に変換していきます。
ユーザあたり6PV必要とするので、100人で600PVに換算できます。600PVを5分間で処理する必要があるので、分間になおすと120PV(600÷5)に、秒間に直すと2PV(120÷60)になります。
アクセスの偏りがあるので、5倍程度の余裕を持たせて、10PV/sくらいを性能目標とすると良いと思います。
また、応答速度についてもユーザが待てる限界と言われている3秒以内と定義しました。
この記事へのコメントはこちら