私の Web アプリケーション アーキテクチャは、Apache 2 (ロード バランサとして) + JBoss 3.2.3 + MySQL 5.0.19 です。
したいこと: JBoss サーバーのみで費やされた (つまり、Web およびデータベース サーバーで費やされた時間を除く) 要求処理時間を (個々の要求ごとに) 測定します。
アプリケーション層のみでリクエスト処理時間をログに記録する方法について調査してきました。*mod_JK ロギング*、*Apache の mod_log_config*、Tomcat AccessLogValveの 2 つの方法が考えられます。
*mod_JK ロギング* の使用: 私の理解では、mod_jk ロギングは各リクエストのリクエスト処理時間を提供し、リクエストが Apache サーバーを離れた時間と、対応する応答が Apache サーバーによって受信された時間との時間差として計算されます。これが正確でない/正しくない場合は、修正してください。
Apache の mod_log_config モデル ( http://www.lifeenv.gov.sk/tomcat-docs/jk/config/apache.html ) を使用: LogFormat (JKLogFile コンストラクト) コンストラクトに「%{JK_REQUEST_DURATION}n」を追加することにより (上記リンク)。「JK_REQUEST_DURATION」は、Apache の観点から Tomcat の全体的な処理時間をキャプチャします。
時間 (上記の場合) には、Tomcat/JBoss + MySQL の処理時間が含まれます。MySQL の処理時間が含まれているため、私の場合は役に立ちません。リクエストの処理時間を JBoss のみで記録したいのです。提案やアイデアをいただければ幸いです。
AccessLogValveの使用: AccessLogValve XML コンストラクトの pattern 属性に %D を設定することにより、「リクエストの処理にかかった時間 (ミリ秒)」をログに記録できます。これかどうかはあまり明確ではありません
- この時間が tomcat/JBoss が要求を処理するのに必要な時間である場合の時間 (たとえば、それを処理するためにスレッド ワーカーを割り当てる)
- リクエストを処理してデータベース サーバーに送信するのにかかった時間 (Tomcat/JBoss サーバーでの全体の時間)
- Tomcat/JBoss によるリクエストの処理と Web サーバー/クライアントへのレスポンスの送信にかかった時間
アイデア/手がかりはありますか?
これは、共有したい私の経験/研究です。誰かが同様の問題を抱えている/それを行う方法を知っている場合は、より良い解決策が見つかる経験/ポインター/考えを共有していただければ幸いです。
あなたの考え/提案を楽しみにしています