いつき over TCP / TimePlant

Apache - httpd.conf

Apacheの設定ファイル(httpd.conf)の設定
・常識的な設定
動作ユーザー権限・VirtualHost等の設定。
最適化・高速化には関係ないので省略。

・遅い・ハングアップしたクライアント対策
Timeoutの値をかなり小さく(今回は30)する。

・HTTP/1.1を利用してコネクション要求を減らす
KeepAlive を On にする。
これで、HTTP/1.1のKeep-Aliveが有効になる。

MaxKeepAliveRequests をかなり大きな値(今回は200)にする。
1回のコネクションで有効なHTTPリクエストをおおきくできる。

KeepAliveTimeout を大きな値(今回は20)にする。
次のコネクションが来るまでの時間を長くする。
あまり長くしすぎると逆効果なので注意。

・同時に通信できるクライアント数を増やす
MaxClients をかなり大きな値(今回は512)にする。
同時に通信できるクライアント(コネクション)の数が増える。
基本的には多ければ多い方が良いが、あまり大きくしすぎると、メモリーからあふれて、スワップされてしまい逆効果。
少しずつ大きくして、スワップしない最適な値を調べるのが良いです。

・DNSの検索をやめる
HostnameLookups を Off にする。
これにより、基本的にはDNSの検索が起こらなくなる。
ただし、一部CGIが動作しない場合があるので注意。(簡単に直せますが)

・ディレクトリーインデックスでのファイルタイプ検索をやめる
IndexOptions FancyIndexingをコメントアウトする。
ほとんど効果はないけど、ディレクトリーインデックスを表示するときの負荷が減る。

・CGIでのCPU・メモリー・プロセスの使用制限
RLimitCPU 数値a 数値b
プロセス当たりの秒数を設定。数値aがソフトリミット、数値bがハードリミット。
今回は都合により設定していない。

RLimitMEM 数値a 数値b
プロセスあたりの使用可能バイトを設定。数値aがソフトリミット、数値bがハードリミット。
今回は16777216 16777216(16M)を使用。

RLimitNPROC 数値a 数値b
ユーザあたりのプロセス数を設定。
今回は10 10を使用。

自分が試した限りでは、FreeBSDとLinuxでは挙動が違うようだ。
FreeBSDでは、「システム全体から見た」で適応されていて、Linuxでは、「Apacheから起動された」で適応されている気がする。
FreeBSDでsuexec無しでRLimitNPROCを設定したときに、/usr/sbin/sendmailを実行出来なくて困っていた記憶が。(Apacheのユーザーは10より大きい)
同様の設定でLinuxでは問題がなかった。
suexecを入れると、両者とも問題が無くなった(^^;
あくまで、自分がそう思っているだけで、本当は違うのかもしれない。



[ UnixInstallへ戻る | トップページへ戻る ]


ITUKI over TCP / TimePlant


このページ及びそれ以下のページに関するすべての著作権は桐原樹/NIにあります
画像、文章などのデータの全て、または一部の無断転載、複製、配布などは禁止です

(c)Copyright 1999-2001 Ituki Kirihara/NI
All rights reserved.