OQMGR(8) OQMGR(8)
名前
oqmgr - 古い Postfix キューマネージャ
書式
oqmgr [generic Postfix daemon options]
解説
oqmgr(8) デーモンは入ってくるメールの到着を待ち、Postfix 配送プロセスが
配送するための準備をします。実際のメールルーティング 方 法 は trivial-
rewrite(8) デーモンに委託されます。このプログラムは master(8) プロセス
マネージャから起動されることを想定しています。
ローカルの double-bounce アドレス宛のメールはログに記録されて捨てられま
す 。これにより配送できないバウンス通知によって起こる潜在的なループが止
められます。
メールキュー
oqmgr(8) デーモンは次のキューの保守をします:
incoming
ネットワークから入ってくるメール、またはローカル pickup(8) エー
ジェントが maildrop ディレクトリから拾ってきたメール。
active 配送するためにキューマネージャが開いたメッセージ。 active キュー
に入れられるメッセージは限られた数だけです(固定された配送速度 の
ための穴あきバケツ戦略)。
deferred
最初の試行で配送できなかったメール。キューマネージャには配送試行
の間隔を倍にして指数的に遅らせる機構が組み込まれています。
corrupt
読めない、もしくは損傷したキューファイルは検査のためにここに移動
されます。
hold "hold" に保存されたメッセージは誰かが開放するまでそこに留められ
ます。 sets them free.
配送状態レポート
oqmgr(8) デーモンは次のディレクトリのメッセージごとの配送状態レポートに
注 目 し つづけます。それぞれの状態レポートファイルは対応するメッセージ
ファイルと同じ名前です:
bounce メールがバウンスされた理由に関する受信者ごとの状態の情報。これら
のファイルは bounce(8) デーモンにより保守されます。
defer メールが遅延された理由に関する受信者ごとの状態の情報。これらのフ
ァイルは defer(8) デーモンにより保守されます。
trace Postfix "sendmail -v" または "sendmail -bv" コマンドで要求される
受信者ごとの状態の情報。これらのファイルは trace(8) デーモンによ
り保守されます。
oqmgr(8) デーモンは bounce(8)、defer(8) または trace(8) デーモンに不 達
レポートを送るように依頼する責任を負います。
方法
キューマネージャにはキューファイルを開いたり(入力)メッセージ配送 (出力)
するための様々な方法が組み込まれています。
穴あきバケツ
この方法は active キュー内のメッセージの数を制限し、負荷が重い時
にキューマネージャがメモリを使い果たすのを防ぎます。
公平性 active キュー の場所が空いている時、キューマネージャは incoming
キューと deferred キューから1メッセージずつ持ってきます。これ は
配送されずに残っているメールが新しいメールの配送を妨げることを防
ぎます。
スロースタート
この方法は同じ目的地への並列配送数をゆっくり調整することで、「大
群(thundering herd)」問題をなくします。
ラウンドロビン
キューマネージャは配送先で要求をソートします。ラウンドロビン選択
により、一つの送信先への配送が他の送信先を支配することがないよう
にします。
指数関数的遅延
最初の試行で配送できなかったメールは遅延されます。配送試行の時間
間隔はそれぞれの試行ごとに倍になります。
配送先状態キャッシュ
キューマネージャは配送できない送信先を短期間のメモリ内リストに保
持することで、不必要な配送試行を避けます。
トリガー
ア イドル状態のシステムでは、キューマネージャはイベントのトリガーの到着
を待つか、タイマーで落ちるのを待ちます。トリガーは1バイトのメッセージで
す 。メッセージの到着に依存して、キューマネージャは次のうち一つの行動を
起こします(メッセージの後にソフトウェアの内部で使われるシンボル的な定数
が続きます):
D (QMGR_REQ_SCAN_DEFERRED)
deferred キューのスキャンをはじめます。すでに deferred キュー の
スキャンが行なわれている最中であれば、それが終わり次第再びはじめ
ます。
I (QMGR_REQ_SCAN_INCOMING)
incoming キューのスキャンをはじめます。すでにスキャンが行なわれ
ている最中であれば、それが終わり次第再びはじめます。
A (QMGR_REQ_SCAN_ALL)
deferred キューファイルのタイムスタンプを無視します。要求は次の
deferred キュースキャン時に有効です。
F (QMGR_REQ_FLUSH_DEAD)
動いていない配送方法や配送先に関する全ての情報を消します。
W (TRIGGER_REQ_WAKEUP)
目覚し。これはマスターサーバがサーバ群にいなくならないように説得
するために使います。この動作は incoming キューのスキャンをはじめ
ます。
oqmgr(8) デーモンはトリガーのバッファ全体を読みます。複数の別々の ト リ
ガー要求は一つにまとめられ、A と F が D と I より先になるようにソートさ
れます。従って、deferred キューを動かすには A F D を要求 し、 キュー マ
ネージャに新しいメールの到着を知らせるには I を指定します。
標準
なし。oqmgr(8) デーモンは外界と接触しません。
セキュリティ
oqmgr(8) デーモンはセキュリティに注意を払う必要がありません。1文字メッ
セー ジ を 信 頼 しないローカルユーザから読みこむため、サービス拒否攻撃
(Denial of Service attacks) には弱くなっています。oqmgr(8) デーモンは外
の世界とは話をしませんし、chroot された環境では低い特権に固定されて動か
すことができます。
診断
問題や処理は syslog(8) デーモンに記録されます。不正なメッセージファイル
は詳細な調査のために corrupt キューにセーブされます。
notify_classes パラメータの設定によっては、ポストマスターにバウンスやそ
の他のトラブルが通知されます。
バグ
単 独のキューマネージャプロセスは cleanup(8) のような複数のフロントエン
ドプロセスとディスクアクセスの競合をします。突然たくさんのメールが 入っ
てくると、外への配送速度にネガティブな影響を及ぼすことがあります。
設定パラメータ
oqmgr(8) は永続プロセスのため、main.cf への変更は自動的には取得されませ
ん。設定の変更後は "postfix reload" コマンドを使ってください。
以 下 の 文 章 はパラメータの概要のみを提供します。例を含む詳細は post-
conf(5) を参照してください。
以下の文章で、transport は master.cf ファイルの最初のエントリです。
互換性の制御
allow_min_user (no)
最初の文字に `-' を持つ受信者アドレスを許します。
ACTIVE キューの制御
qmgr_clog_warn_time (300s)
特定の配送先が Postfix active キューを詰まらせているという警告の
最小遅延間隔。
qmgr_message_active_limit (20000)
active キューのメッセージの最大数。
qmgr_message_recipient_limit (20000)
Postfix キューマネージャがメモリ内に保持する受信者の最大数、およ
び短期間・メモリ内の "動いていない" 配送先の状態キャッシュサイズ
の最大サイズ。
配送並列度の制御
qmgr_fudge_factor (100)
古い機能: 大きなメーリングリストのメッセージ配送にビジーなメール
システムが使う配送リソースのパーセンテージ。
initial_destination_concurrency (5)
同じ配送先に並列で配送する際の、配送先ごとの並列度の初期値。
default_destination_concurrency_limit (20)
同じ配送先への並列配送の、デフォルトの最大数。
transport_destination_concurrency_limit
指定されたメッセージ transport を使った配送に対して、上記と同 じ
。
受信スケジューリングの制御
default_destination_recipient_limit (50)
メッセージ配送ごとの受信者数の、デフォルトの最大数。
transport_destination_recipient_limit
指 定されたメッセージ transport を使った配送に対して、上記と同じ
。
その他のリソースおよび速度の制御
minimal_backoff_time (1000s)
遅延メッセージの配送を試行する最小の時間間隔。
maximal_backoff_time (4000s)
遅延メッセージの配送を試行する最大の時間間隔。
maximal_queue_lifetime (5d)
配送できないものとして送り返すまでに、メッセージがキューに入って
いる最大の時間。
queue_run_delay (1000s)
deferred キューがキューマネージャによってスキャンされる 時 間 間
隔。
transport_retry_time (60s)
Postfix キューマネージャが異常なメッセージ配送 transport に接 触
しようとする時間間隔。
Postfix バージョン 2.1 以降で使えます:
bounce_queue_lifetime (5d)
配送できないと見なすまでに、バウンスメッセージがキューに入ってい
る最大の時間。
その他の制御
MISCELLANEOUS CONTROLS.IP "config_directory ('postconf -d' の出力 を 参
照)" Postfix main.cf および master.cf 設定ファイルのデフォルトの場所。
daemon_timeout (18000s)
ビルトイン監視タイマーによって終了するまでの、Postfix デーモンプ
ロセスが要求を扱うことができる時間。
defer_transports (empty)
誰かが "sendmail -q" または等価なものを実行しても、配送される べ
きではないメッセージ配送 transport の名前。
helpful_warnings (yes)
問題のある設定をログで警告し、参考になる忠告を提供します。
ipc_timeout (3600s)
内部通信チャネルを使った情報の送受信の時間制限。
process_id (read-only)
Postfix コマンドまたはデーモンプロセスのプロセス ID。
process_name (read-only)
Postfix コマンドまたはデーモンプロセスのプロセス名。
queue_directory ('postconf -d' の出力を参照)
Postfix トップレベルキューディレクトリの場所。
syslog_facility (mail)
Postfix ロギングの syslog facility 名。
syslog_name (postfix)
例 えば "smtpd" が "postfix/smtpd" となるようにするために syslog
レコードのプロセス名の前に付けられるメールシステムの名前。
ファイル
/var/spool/postfix/incoming, incoming キュー
/var/spool/postfix/active, active キュー
/var/spool/postfix/deferred, deferred キュー
/var/spool/postfix/bounce, 非配送状態
/var/spool/postfix/defer, 非配送状態
/var/spool/postfix/trace, 配送状態
関連項目
trivial-rewrite(8), アドレスルーティング
bounce(8), 配送状態レポート
postconf(5), 設定パラメータ
master(5), 一般的なデーモンオプション
master(8), プロセスマネージャ
syslogd(8), システムロギング
README ファイル
QSHAPE_README, Postfix キューの解析
ライセンス
The Secure Mailer license はこのソフトウェアと一緒に配布されなければい
けません。
作者
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
OQMGR(8)