Skip to content

Commit

Permalink
doc: add manager.max_pending_finished_sessions
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Feb 28, 2013
1 parent 1d3d26f commit 6acf6e8
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 0 deletions.
42 changes: 42 additions & 0 deletions doc/configuration.rd
Expand Up @@ -80,6 +80,7 @@ current configuration is shown.
manager.packet_buffer_size = 0
manager.connection_check_interval = 0
manager.chunk_size = 65535
manager.max_pending_finished_sessions = 0
controller.connection_spec = nil
controller.unix_socket_mode = 0660
Expand Down Expand Up @@ -711,6 +712,47 @@ Since 1.6.6.
Default:
manager.chunk_size = 65535 # Sends body data as 64KB chunks.
: manager.max_pending_finished_sessions
((*Normally, this item doesn't need to be used.*))

Since 1.8.6.

Milter manager delays processings that don't effect to throughput
until idle time. For example, termination processing for finished
milter session is one of those delayed processings.
Milter manager does termination processing for finished milter
sessions by setting this item. Normally, there is idle time even
when milter manager processes multiple milter sessions concurrently.
If the number of processing milter sssions is too large, there will
be no idle time. So termination processins are not done. If
termination processings are not done for a long time, the number of
openable file descripters may be lacked. Because used socket is
closed in termination processing.
Normally, you should avoid the no idle time situation because it is
overload. It is better that increasing the number of workers by
((<manager.n_workers|.#manager.n-workers>)) configuration.
Milter manager does termination processing even when there is no
idle time by setting one or larger number. Termination processing
is done when specified the number of finished sessions. This item
doesn't disable termination processing on idle time. So this item
doesn't effect to throughput on normal time. This item effects
on only no idle time.
The default value is 0. It distables termination processing on no
idle time feature.
Example:
# Do termination processing after each session is finished
manager.max_pending_finished_sessions = 1
Default:
# Do termination processing when no other processings aren't remining
manager.max_pending_finished_sessions = 0

: manager.use_netstat_connection_checker

Since 1.5.0.
Expand Down
39 changes: 39 additions & 0 deletions doc/configuration.rd.ja
Expand Up @@ -86,6 +86,7 @@ milter-managerの設定ファイルmilter-manager.confの書き方につ
manager.packet_buffer_size = 0
manager.connection_check_interval = 0
manager.chunk_size = 65535
manager.max_pending_finished_sessions = 0

controller.connection_spec = nil
controller.unix_socket_mode = 0660
Expand Down Expand Up @@ -704,6 +705,44 @@ milter-managerの設定ファイルmilter-manager.confの書き方につ
既定値:
manager.chunk_size = 65535 # 本文データを64KBずつ送る

: manager.max_pending_finished_sessions

((*この項目は通常は使用する必要はありません。*))

1.8.6から使用可能。

milter managerはスループットを向上させるため、スループットに影響しな
い処理は何も処理がないときまで処理を遅延します。終了したmilterセッショ
ンの後始末処理もそのような遅延される処理の1つです。

この項目を設定することで、他に処理があるときでもmilterセッションの後
始末処理を行うようになります。通常は、複数のmilterセッションを処理し
ている場合でも途中に他に何も処理するものがない状態になりますが、同時
接続数が非常に多くなると常になんらかの処理を実施し続けるため、後始末
処理が実行されなくなります。後始末処理ではソケットのクローズも行って
いるため、長い間、後始末処理が実行されないと開けるファイルディスクリ
プタ数が足りなくなる危険性があります。

常になんらかの処理を実行し続けている状態は過負荷の状態なので、本来で
あれば、そうならないように
((<manager.n_workers|.#manager.n-workers>))を設定してワーカー
数を増やした構成にすることが望ましいです。

この項目に0より大きい値を設定すると、他に処理があるときでも、指定した
値分セッションを処理した後に後始末処理を実行します。もちろん、他に処
理がないときも後始末処理を実行するので、通常時はスループットへの影響
はありません。負荷が高くなった時のみこの値が影響します。

規定値は0でこの機能は無効になっています。

例:
# セッションが終了したら毎回すぐに終了処理を行う
manager.max_pending_finished_sessions = 1

既定値:
# なにも処理がないときのみセッションの終了処理を行う
manager.max_pending_finished_sessions = 0

: manager.use_netstat_connection_checker

1.5.0から使用可能。
Expand Down

0 comments on commit 6acf6e8

Please sign in to comment.