[Reference:<_A143@delegate-ja.ML_>]
Newsgroups: mail-lists.delegate-ja
[DeleGate-Ja] Re: REJECTの行数
In message <_A143@delegate-ja.ML_> on 07/14/08(11:32:15)
you "Hidemi Mohri" <pfyaabrv6-mxhgu442rwxw.ml@delegate.org> wrote:
|東京女子医科大学 毛利と申します。
|
|いつもdelegateにはお世話になっております。
|
|この度、delegateを使用してアクセス制限をかけることになりました。
|台数が1500台程度あり、一行ごとに、
|REJECT="XXX.XXX.XXX.XXX"
|とIPアドレスを記述しております。
|希望通りの動作はするのですがサーバが「高負荷」となりサービスの提供自体がままならない状態となってしまいます。
|
|記述方法での回避策はございますでしょうか。
まず、上記の設定で起動できているという事に、何点か疑問があります。
REJECTパラメタは、REJECT=protocol:server:client という形式ですので、
実際の記述は上とは別のものなのでしょうね。また、REJECTのというより
DeleGateのコマンド引数の最大数は1024なのですが、これもconfig.hの
変更などで回避されているのかも知れません。また、多数のIPアドレスを
指定するとDeleGateの起動時にDNSの検索で非常に遅くなることがあります
が、これも"-"を前置するなどによって回避されているのかも知れません。
さて、アクセス制御のためのアドレスのマッチングは単純サーチなので、
かなり遅いとは言えますが、それでも通常のCPUの速度であれば無視できる
程度の場合がほとんどです。
最初に考えられる「高負荷」の原因は、DeleGateがアクセスを禁止している
クライアントからのアクセスを繰り返し受けた際に「応答の遅延」を行なって
いることによるものです。この場合、LOGFILE中には
"doDelay: delaying reject*5 (4/60second) client-host.domain" という
ようなメッセージが記録され、(Unixの場合)psで見ると
"DeleGate -{mmm+nnn:client-host.domain}[(reject:5)http://server]-Pxxxx"
のようなDeleGateプロセスが見えます。
このようなDeleGateプロセスが多数になると、見かけの負荷(ロードアベレージ)
は高くなり、実際のサービス処理はほとんど行なわれない(CPU使用率はあまり
高くない)状態になります。
この状況を避ける一番簡単な方法は、このDeleGateによる「応答の遅延」を
行なわないことです。そのためには、
DELAY=reject:0
とすると良いでしょう。
これ以外の原因であるかもしれませんが、それはプロセスの実行状況等を
見る必要があります。いくつか回避策はありますが、それはDeleGateの
バージョンによります。
9 9
┌─┐┬┌──┬┐ //\^^ ( e ); {Do the more with the less -- B. Fuller}
├─┤│└─┐│ / 877m\_< >_ <URL:http://www.delegate.org/delegate/>
┴ └┴──┘┴──────────────────────────────
佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)
|