.
.
.
.
.
TOPページ(Alt+B)
.
Apache高速化計画

Apacheの設定が完了してうまく動かせるようになったら、今度はサーバーの応答速度を上げて、最大限のパフォーマンスが得られるようにチューニングしてみましょう。

KeepAliveは必ずonで

KeepAlive(永続的接続)をonするとサーバーのオーバーヘッドが減り、パフォーマンスが向上します。同時にMaxKeepAliveRequests(接続ごとの最大リクエスト数)を200などの大きな数にします。またTimeOutの値を30(秒)などの小さな値にするとハングアップしたクライアントや低速なクライアントによるサーバーへの影響を減らすことができます。

.htaccessファイルの使用は極力避ける

Apacheはクライアントからの要求に対し、デフォルトではそのたびに各ディレクトリの中で.htaccessファイルを探します。例えばC:\Apache\htdocs\home\123.htmlというパスのすべてのディレクトリに.htaccessファイルがあり、123.htmlに対して10個のリクエストがあったとすると、htdocsで10回、homeでも10回、合計20回の.htaccess参照が行われることになり、これは大きなロスとなります。.htaccessファイルを全く使わないようにするにはhttpd.confの

<Directory />
 Options FollowSymLinks
 AllowOverride None
</Directory>

AllowOverrideがNoneに指定されていることを確認します。/(スラッシュ)を指定することにより、サーバー上のすべてのディレクトリで無効にすることができます。どうしても.htaccessファイルを使用したい場合には

<Directory "C:/Apache/htdocs/home">
 Options FollowSymLinks
 AllowOverride Limit(またはAll)
</Directory>

のように、使いたいパスを限定して指定します。その場合でも、上記のように最上位ディレクトリである/に対してはAllowOverride Noneを必ず指定しておき、他のディレクトリで無用な.htaccessファイル検索が行われないようにしておきます。

FancyIndexingによる速度低下を避ける

FancyIndexingを有効にすると、index.htmlのないディレクトリにアクセスされるたびにそのディレクトリの内容のインデックスが生成され表示されます。このとき、Apacheは表示する適切なアイコンを探すため速度が大きく低下します。

IndexOptions FancyIndexing

の先頭に#を付けて、これを無効にします。

DNSの逆引きを停止する

HostNameLookupsをonに指定すれば、IPアドレスに対するホスト名を調べるためにDNSの逆引きが行われ、offにすれば停止します。HostNameLookupsは特別な理由がない限りoffを指定します。また、Allow from ホスト名 または Deny from ホスト名 を指定した場合は一度逆引きを行ってから、順引きが行われるという二重の逆引きが行われることになり、大きな速度低下を招くことになります。どうしてもDNSの逆引きを行う必要があるときには

HostNameLookups off

<Location /status>
     <Files ~ "\.(html | cgi)$>
          HostNameLookups on
     </Files>
</Location>

のように対象範囲を限定します。

SSI(サーバーサイドインクルード)を使用しない

SSIを含んでいるWebページの場合、サーバーはその中身を調べる必要があるため応答速度が大きくロスし、またCPUへの負荷も大きくなります。SSIは全く使わないか、どうしても使う必要がある場合には特定の拡張子を持つファイル(通常は.shtml)のみパースするように設定しておきます。

必要性のないモジュールを読み込ませない

Apacheにはその機能を拡張するさまざまなモジュールが備えられていますが、デフォルトではすべてコメントアウト化されており、そのコメントを削除することにより使用可能にします。しかし、モジュールの一つ一つが余分なメモリを消費するということを考慮して、本当に必要なものだけを有効にします。

その他

・ログファイルはApacheが実行されるディスクとは別のディスクに保存する。
・EIDEディスクではなくSCSIディスクを使用する。
・物理メモリを増設する。
・Apacheをソースコードからインストールし、デフォルトで組み込まれるモジュールの内不必要なものをconfigure時にdisable指定する。また、モジュールを外部モジュールとして読み込む必要がないように設計する。(ソースコードからインストールを参照してください)
・最後の手段として、OSをLinux、SolarisなどのPC-UNIXに代える。ApacheはUNIXシステム上での動作に最高のパフォーマンスを発揮することは云うまでもありません。Windowsシステム上での動作と比較した場合の差は歴然としています。

TOPページ(Alt+B)

CopyRight (C) 2000-2013 by T.Shiraishi All right reserved 無断転載禁止/リンクフリー