この記事は公開されてから1年以上経過しているため、情報が古い可能性がございます。
ご注意ください。

このWordPress pluginを配布しています

前回の負荷テスト実施時に指標とした数値、計算方法をご紹介します。
いろいろな計算方法があると思いますので、一例としてご認識ください。

数値のサンプル

項目 備考
A 登録ユーザ数 1,000,000.0
B DAU(Dairy Access User) 50,000.0
C 一人当たりの平均プレイ時間 0.5 単位:時間
D 平均アクセス間隔 0.6 D = B / ( 24 * 60 * 60 ) 単位:秒
E 平均滞在時間 1,800.0 E = C * 3600 単位:秒
F 同時アクセス数 3,000.0 F = E / D
G ピーク時の同時アクセス数 6,000.0 G = F * 2
H 平均アクセス回数 60.0
I 平均通信間隔 30.0 I = E / H 単位:秒
J 同時リクエスト数 200.0 J = G / I
K トランザクション発生率 75.0 単位:%

解説

A.登録ユーザ数、B.DAU

想定の登録ユーザ数、アクセス数をざっくりと見積もります。

サービス開始から2 – 3か月ほど経過した時点での想定数値を設定するのがポイントです。

C.一人当たりの平均プレイ時間、E.平均滞在時間

これは「あるユーザがアクセスしてから離脱するまで」の平均値を指します。
モデルケースを作成し、ユーザが1回に「連続してサービスを利用する時間」の平均値を割り出して設定してください。

E.平均滞在時間は単位を変換しただけのものです。

数値モデルが、ソーシャルゲームがベースのため「プレイ時間」と表現しています。

D.平均アクセス間隔

新しいユーザが「どのくらいの頻度でサービスにアクセスするか」という数値です。

DAUは言葉通り「1日にアクセスするユーザ数」ですから、これを1日の秒換算86400秒( 24 * 60 * 60 )で割り、「平均してユーザがサービスにアクセスする間隔」を求めます。

F.同時アクセス数、G.ピーク時の同時アクセス数

平均滞在時間と平均アクセス間隔の重複から、「ある時間、同時にサービスにアクセスしているユーザの数」を求めます。

負荷テストでは同時接続がもっとも問題となります。
それは「瞬間あたり、どれだけサーバリソースの奪い合いが発生するか」に直結するためです。

ピークタイムのアクセス数に耐えられるようにするため、「日付の切り替わり」や「イベント開始、終了直前」など、アクセスが集中しがちなタイミングでどれだけのユーザが集まるかを慎重に検討します。

今回は平常時とピークタイムの差は2倍としましたが、サービスの種類に左右される所です。

H.平均アクセス回数、I. 平均通信間隔

1ユーザが平均滞在時間中に「どの程度サーバにアクセスするか」の数値です。

_実際にサービスを利用してモデルケースを作成し、数値を平均化したものを指標にすると良いでしょう。

モデルケースは、「上級ユーザ」や「週末だけ利用するユーザ」など複数の利用形態を想定すると、より信頼度が高まります。

また、この数値は提供するサービスによって大きく値が変化します。

例えばこのような具合です。

  • ブラウザベース
    画面遷移ごとに1リクエストが発生

  • ネイティブアプリ用のAPI
    状態が変わる場合に1リクエストが発生するため、アクセスの間隔が広い

J.同時リクエスト数

ピーク時の同時アクセス数に平均通信間隔をかけたものを「同時リクエスト数」とみなします。
この数値が高ければ高いほど、アクセスが集中するという意味です。

負荷テストではこの同時リクエスト数をクリアできることを目標にシナリオを組み立ててテストを実施していきます。

K.トランザクション発生率

「データベースの更新を伴う通信」がどのくらいの割合で発生するかの指標で、データベースの負荷分散に関わる数値です。

用意したモデルケースを分析して、数値を求めましょう。

例えばネットショップなら「データベースの更新」よりも「データベースからのデータの参照」が圧倒的に多くなることが予想されます。
これは、平均アクセス間隔の欄で示したように、提供するサービスによって傾向が異なります。

最後に

どの数値も見積もりが甘く、精度が低ければ信頼の薄いテストとなってしまいます。

また、負荷の高い通信のみでシナリオの組み立ててしまうと良い数値が出ずに苦しむことになってしまいます。

各数値、シナリオの決定は慎重に、実態に即した内容で検討してください。



2015年11月26日 タイトルを若干更新
2015年11月21日 タイトルを【[LoadTest]負荷テストの同時リクエスト数見積り方法】から変更、記事の一部を更新

スポンサーリンク
ad_336
ad_336
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存