QMGR(8) QMGR(8)
名前
qmgr - Postfix キューマネージャ
書式
qmgr [generic Postfix daemon options]
解説
qmgr デーモンは入ってくるメールの到着を待ち、Postfix 配送
プロセスが配送するための準備をします。実際のメールルーティ
ング方法は trivial-rewrite(8) デーモンに委託されます。この
プログラムは master(8) プロセスマネージャから起動されるこ
とを想定しています。
ローカルの double-bounce アドレス宛のメールは黙って捨てら
れます。これにより配送できないバウンス通知によって起こる潜
在的なループが止められます。
オプションの relocated データベースにリストされたユーザ宛
のメールは "user has moved to new_location" メッセージ
が付いてバウンスされます。正確な記述は relocated(5) を参照
して下さい。
メールキュー
qmgr デーモンは次のキューの保守をします:
incoming
ネットワークから入ってくるメール、またはローカル
pickup エージェントが maildrop ディレクトリから拾っ
てきたメール。
active 配送するためにキューマネージャが開いたメッセージ。
active キューに入れられるメッセージは限られた数だけ
です(固定された配送速度のために穴あきバケツ戦略(?))。
deferred
最初の試行で配送できなかったメール。キューマネージ
ャには配送試行の間隔を倍にして指数的に遅らせる
(?; backoff)機構が組み込まれています。
corrupt
読めない、もしくは損傷したキューファイルは検査のた
めにここに移動されます。
配送状態レポート
qmgr デーモンは次のディレクトリのメッセージごとの配送状態
レポートに注目しつづけます。それぞれの状態レポートファイル
は対応するメッセージファイルと同じ名前です:
bounce なぜメールがバウンスされたかという受信者ごとの状態
の情報。これらのファイルは bounce(8) デーモンにより
保守されます。
defer なぜメールが遅延されたかという受信者ごとの状態の情
1
QMGR(8) QMGR(8)
報。これらのファイルは defer(8) デーモンにより保守
されます。
qmgr デーモンは bounce(8) や defer(8) デーモンに不達レポー
トを送るように依頼する責任を負います。
方法
キューマネージャにはキューファイルを開いたり(入力)メッセー
ジ配送(出力)するための様々な方法が組み込まれています。
leaky bucket
この方法は active キュー内のメッセージの数を制限し、
負荷が重い時にキューマネージャがメモリを使い果たす
のを防ぎます。
fairness
active キューの場所が空いている時、キューマネージャ
は incoming キューと deferred キューから1メ
ッセージずつ持ってきます。これは未処理のメールが新しいメー
ルの配送を妨げることを防ぎます。
slow start
この方法は同じ目的地への並列配送数をゆっくり調整す
ることで、「大群(thundering herd)」問題をなくします。
round robin
キューマネージャは配送先で要求をソートします。ラウ
ンドロビン(?)選択により、一つの送信先への配送が他の
送信先を支配することがないようにします。
exponential backoff
最初の試行で配送できなかったメールは遅延されます。
配送試行の時間間隔はそれぞれの試行ごとに倍になりま
す。
destination status cache
キューマネージャは配送できない送信先を短期間のメモ
リ内リストに保持することで、不必要な配送試行を避け
ます。
トリガー
アイドル状態のシステムでは、キューマネージャはイベントのト
リガーの到着を待つか、タイマーで落ちるのを待ちます。トリガ
ーは1バイトのメッセージです。メッセージの到着に依存して、
キューマネージャは次のうち一つの行動を起こします(メッセー
ジの後にソフトウェアの内部で使われるシンボル的な定数が続き
ます):
D (QMGR_REQ_SCAN_DEFERRED)
遅延キューのスキャンをはじめます。すでに遅延キュー
のスキャンが行なわれている最中であれば、それが終わ
2
QMGR(8) QMGR(8)
り次第再びはじめます。
I (QMGR_REQ_SCAN_INCOMING)
入ってくるキューのスキャンをはじめます。すでにスキ
ャンが行なわれている最中であれば、それが終わり次第
再びはじめます。
A (QMGR_REQ_SCAN_ALL)
遅延キューファイルのタイムスタンプを無視します。要
求は次の遅延キュースキャン時に有効です。
F (QMGR_REQ_FLUSH_DEAD)
動いていない配送方法や配送先に関する情報を消します。
W (TRIGGER_REQ_WAKEUP)
目覚し。これはマスターサーバがサーバ群にいなくなら
ないように説得するために使います。この動作は入って
くるキューのスキャンをはじめます。(?)
qmgr デーモンはトリガーのバッファ全体を読みます。複数の別
々のトリガー要求は一つにまとめられ、A と F が D と I より
先になるようにソートされます。従って、遅延キューを動かすに
は A F D を要求し、キューマネージャに新しいメールの到着を
知らせるには I を指定します。
標準
なし。qmgr デーモンは外界と接触しません。
セキュリティ
qmgr デーモンはセキュリティに敏感ではありません。1文字メッ
セージを信頼しないローカルユーザから読みこむため、サービス
拒否攻撃(Denial of Service attacks) には弱くなっています。
qmgr デーモンは外の世界とは話をしませんし、chroot された環
境では低い特権に固定されて動きます。
診断
問題や処理は syslog デーモンに記録されます。不正なメッセー
ジファイルは詳細な調査のために corrupt キューにセーブされ
ます。
notify_classes パラメータの設定によっては、ポストマスター
にバウンスやその他のトラブルが通知されます。
バグ
単独のキューマネージャプロセスは smtpd のような複数のフロ
ントエンドプロセスとディスクアクセスの競合をします。突然た
くさんのメールが入ってくると、外への配送速度にネガティブな
影響を及ぼすことがあります。
3
QMGR(8) QMGR(8)
設定パラメータ
以下の main.cf パラメータは特にこのプログラムに関連があり
ます。文法の詳細やデフォルト値は main.cf ファイルを参照し
て下さい。設定の変更後は postfix reload コマンドを使って
ください。
その他
relocated_maps
存在しないユーザ、ホストまたはドメインの連絡情報の
テーブル。relocated(5) 参照。
queue_directory
Postfix キューのトップレベルディレクトリ。
アクティブなキューの制御
qmgr_message_active_limit
アクティブなキューの数を制限する。
qmgr_message_recipient_limit
メモリに保持する受信者の数を制限する。
このパラメータは単期間・メモリ内配送先キャッシュの
サイズも制限します。
タイミング制御
min_backoff
遅延メッセージの配送試行間隔の最低秒数。
このパラメータは単期間・メモリ内配送先状態キャッシ
ュに届かない配送先を記憶しておく時間も制限します。
max_backoff
遅延メッセージの配送を試行する最大間隔秒数。
maximal_queue_lifetime
配送できないとして返送するまでキューに入っている最
大の日数。
queue_run_delay
遅延キューをスキャンする間隔の秒数。キューのスキャ
ンは重なりません。
transport_retry_time
壊れた配送方法に連絡を試みる間隔の秒数。
並列度制御
下の文で transport は master.cf の最初のフィールドを指し
ます。
4
QMGR(8) QMGR(8)
initial_destination_concurrency
同じ配送先に並列で配送する際の、配送先ごとの並列度
の初期値。
default_destination_concurrency_limit
同じ配送先への並列度の制限数のデフォルト。
transport_destination_concurrency_limit
指定されたメッセージ transport での同じ配送先に対す
る並列配送数の制限。
Recipient controls
default_destination_recipient_limit
メッセージ配送ごとの受信者数の制限のデフォルト。
transport_destination_recipient_limit
指定されたメッセージ transport での、メッセージ配送
ごとの受信者数の制限のデフォルト。
関連項目
master(8), プロセスマネージャー
relocated(5), 移動したユーザのテーブルの書式
syslogd(8) システムロギング
trivial-rewrite(8), アドレスルーティング
ライセンス
安全なメーラライセンス(The Secure Mailer license)はこのソフト
ウェアと一緒に配布されなければいけません。
作者
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
5