同時端末ユーザとアクティブ・ユーザ?
システム・サービス状態をモニタリングするためには、まず、同時端末ユーザとアクティブ・ユーザの概念についての 理解が必要です。
ジェニファーは独自のアルゴリズムで現在コンピューターの前に座って該当システムを使っている人、 すなわち同時端末ユーザ数を正確に測定可能です。
過去クライアント/サーバ環境では単純にTCP/IP コネクション数を接続者数としてカウントしていましたが、ウェブ環境の HTTPプロトコルはConnectionlessのため、単純にTCP/IPコネクション数を接続者数とすることはできません。
下記の図は一人のユーザがシステムに接続して最初にクリック後、その次のページに移動しながらクリックを繰り返して、 最終的にサイトから離れるタイプを簡単に形象化したものです。
他のユーザも別の違う時間に該当システムに訪問してこのようなタイプでサービスを使うと考えられます。
この時クリックとクリックの間の時間をリクエスト間隔と定義して、最初に訪問した時間から最後のクリックまでの時間を訪問時間として定義します。
この状況で任意に特定時間帯を線で引いて該当時刻での接続者又は同時端末ユーザを確認してみると6名(該当図で)が使っていることを確認できます。すなわち同時端末ユーザとは、特定時点でシステムに接続して使っているすべてのユーザの数を意味します。
そしてアクティブ・ユーザは次の図を通じて理解可能です。
アクティブ・ユーザは特定時点でクリックしてサービスをリクエスト後、応答を待っているユーザを意味します。そしてユーザがサービスをリクエストした時間から応答を受けた時間までの間隔を応答時間と言い、応答を受けた後、その次のリクエストをするまでの時間を待機時間(Think Time)と言います。
例えばある時点で対象システムを上のような概念でモニタリングするとその時刻に実行中のサービスがわかります。その実行中のサービスの総数はクリック後、まだ応答を受けてない状態のすべてユーザの数と同じです。
したがって前の図では3 名のアクティブ・ユーザがいることになります。したがってこれをユーザの観点ではアクティブ・ユーザ、システムの観点ではアクティブ・サービスとして定義できます。またアクティブ・サービスは特定の時点にサーバで実行中のWorker-Threadの数と同じです。
ジェニファーが同時端末ユーザ数を測定する時に使うアルゴリズムは性能理論に基盤を置いており、現在コンピューターの前に座ってシステムを使っている人の数をより正確に測定するための画期的な方法です。
過去クライアント/サーバ方式のシステムでは単純にTCP/IPコネクション数を同時端末ユーザ数でカウントしていましたが、HTTPプロトコルはユーザ・コンピューターとサーバの間の連結を継続させないでユーザのリクエストを直接的に処理する時だけコネクションする方式であるため、TCP/IPコネクション数を同時端末ユーザ数としてカウントすることはできません。
そこで、ジェニファーでは、性能理論に基づいて次の同時端末ユーザ数測定アルゴリズムで同時端末ユーザ数を測定します。
システムの負荷量(Throughput)が高いほど正確な数値に取り集めていくということ
が数学的に証明されました。また、数十回のウェブ性能テストツールによる
シミュレーションと実際運用システムのモニタリングの結果、
このアルゴリズムで測定した同時端末ユーザ数数値の正確性は検証されています。
同時端末ユーザ数をウェブ・アプリケーション・サーバが提供する
javax.servlet.http.HttpSessionオブジェクトの数を通じて測定する方法は、
適切ではありません。HTTPセッションにはセッション・タイム・アウトという特徴が
あるのに特定ユーザが該当サイトを離れてもセッション・タイム・アウト期間の間は
HttpSessionオブジェクトが残っているためHttpSessionオブジェクトの数は実際同
時端末ユーザ数より大きくなります。
例えば大きいホールに集まった500人のユーザが同じシステムに接続して使った場合、ジェニファーが測定したシステムの同時端末ユーザ数、ウェブ・アプリケーション・サーバのHttpSessionオブジェクトの数はすべて500になります。
ところが500人がお昼の食事のために皆席を立ってそのホールから出るとジェニファーが測定した同時端末ユーザ数は直ちに0になりますがウェブ・アプリケーション・サーバのHttpSessionオブジェクトの数はセッション・タイム・アウト期間の間は引き続き500です。
|