• 検索結果がありません。

HTTP/1.1 HTTP/1.1

HTTP/1.1 プロトコルの利点 プロトコルの利点 プロトコルの利点 プロトコルの利点

Oracle HTTP Serverでは、HTTP/1.1が使用可能です。 Netscape Navigatorリリース4.0で

はHTTP/1.0を使用しており、永続的な接続などの一部の1.1の機能を使用しています。

Internet ExplorerではHTTP/1.1を使用しています。 永続的な接続を使用すると、各リクエ

ストに対する接続の確立と終了によって発生するオーバーヘッドの削減により、パフォーマ ンス上での利点が得られます。永続的な接続では、1ユーザーからの複数のリクエストを受 け付けます。

小さな静的ページ・リクエストの場合、接続のレイテンシレイテンシレイテンシレイテンシは応答のレイテンシレイテンシレイテンシ(接続確立後レイテンシ にリクエストを完了するまでの時間)と同じかまたはそれより大きくなります。そのため、

永続的な接続を使用すると、パフォーマンスが大きく改善されます。

永続的な接続のサポート 永続的な接続のサポート 永続的な接続のサポート 永続的な接続のサポート

ユーザーのブラウザが永続的な接続をサポートしている場合(HTTP/1.1のデフォルトの動 作)、ApacheのKeepAliveディレクティブを使用して、サーバー上で永続的な接続をサ ポート可能です。(HTTP/1.1の全機能をサポートしていないブラウザでも、Netscapeの最 近のバージョンなど、一部のブラウザでは永続的な接続をサポートしています。)

HTTP/1.1プロトコルの利点

永続的な接続による応答時間の短縮 永続的な接続による応答時間の短縮 永続的な接続による応答時間の短縮 永続的な接続による応答時間の短縮

永続的な接続を使用すると、接続の確立による遅延が1回しか発生しないため、複数の HTTPリクエストが含まれるWeb対話処理における合計応答時間応答時間応答時間応答時間を改善できます。

永続的な接続を使用しない場合に、3つのイメージを持つWebページをクライアントがサー バーから取得するために要する合計時間を見てみます。

永続的な接続を使用すると、同じリクエストの応答時間応答時間応答時間応答時間が次のように短縮されます。

これは、サービス時間サービス時間サービス時間のサービス時間 20%の減少です。

アクティビティアクティビティアクティビティアクティビティ 秒秒秒秒

接続の確立 1

ページのテキスト部分の生成と送信 5

接続の確立 1

最初のイメージ・ファイルの転送 2

接続の確立 1

2番目のイメージ・ファイルの転送 2

接続の確立 1

3番目のイメージ・ファイルの転送 2 合計 合計合計 合計 15

アクティビティアクティビティアクティビティアクティビティ 秒秒秒秒

接続の確立 1

ページのテキスト部分の生成と送信 5 最初のイメージ・ファイルの転送 2 2番目のイメージ・ファイルの転送 2 3番目のイメージ・ファイルの転送 2

合計 合計合計 合計 12

HTTP/1.1プロトコルの利点

OracleJSPアプリケーション(Oracle9i Application Server付属のサンプルである

lotto.jsp)および永続的な接続を使用した社内テストでは、1ユーザーが1回の接続あた り5つのリクエストを行った場合、約20%の改善が見られました。 ユーザー数が増加した場 合(10〜100)、これほど大きくはありませんが、やはり顕著なパフォーマンスの改善が見 られました(6%以上)。

5

Apache JServ の最適化 の最適化 の最適化 の最適化

この章では、JServのアーキテクチャと、パフォーマンスの改善方法について説明します。

また、OracleJSP(Oracleによるサン・マイクロシステムズ社のJavaServer Pages 1.1のイン プリメンテーション)に関するパフォーマンス情報についても説明します。

JServの概要

サーブレットのパフォーマンスの最適化

OracleJSPとは

OracleJSPのパフォーマンス・チューニング

JServの概要

JServ JServ JServ

JServ の概要 の概要 の概要 の概要

Apache JServは、httpdプロセスで実行されるmod_jservというApacheモジュールと、

Javaプロセスで実行されるサーブレット・エンジンで構成されています。mod_jservはC でインプリメントされており、ディスパッチャとして機能し、各サーブレット・リクエスト

の実行をJServプロセスにルーティングします。

サーブレット・エンジンは専用のJVM(Java仮想マシン)で実行され、リクエストの解析 とレスポンスの生成のみ行います。図5-1に示すように、複数のJServでリクエストを処理 可能です。HTTPサーバー・プロセスとJServプロセスは、Apache JServ Protocol 1.2を使用 して通信します。

図図

図図5-1 Apache JServのコンポーネントのコンポーネントのコンポーネントのコンポーネント

サーブレットのパフォーマンスの最適化

サーブレットのパフォーマンスの最適化 サーブレットのパフォーマンスの最適化 サーブレットのパフォーマンスの最適化 サーブレットのパフォーマンスの最適化

この項では、JServのパフォーマンスの最適化の方法として、JVMの開始時のサーブレット のロードと、ロード・バランシングについて説明します。

この説明では、「リポジトリ」と「ゾーン」という用語を使用します。サーブレット、リポ ジトリおよびゾーンは、それぞれファイル、ディレクトリおよび仮想ホストに似ています。

サーブレットは1つの単位で、リポジトリリポジトリリポジトリはサーブレットの集合、ゾーンリポジトリ ゾーンゾーンはリポジトリの集ゾーン 合です。

サーブレット・クラスのロード サーブレット・クラスのロード サーブレット・クラスのロード サーブレット・クラスのロード

Apache JServでは、JVMの起動時にサーブレット・クラスをロードすることが可能です。

これを行うには、ロードするサーブレットを、サーブレット・ゾーンのプロパティ・ファイ ル内のservlets.startupディレクティブに含めます。サーブレットのロード時に、その サーブレットのinit()メソッドがコールされます。他のすべてのサーブレット

(servlets.startupのリストに含まれていないもの)は最初のリクエスト時にロードお よび初期化されます。

この機能を使用すると、JServプロセスの起動時間は長くなりますが、サーブレットの最初 のリクエストのレイテンシレイテンシレイテンシレイテンシが改善されます。

JSP

関連したドキュメント