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
最 初 の 試行で配送できなかったメール。キューマネー
ジャには配送試行の間隔を倍にして指数的に遅らせる 機
構が組み込まれています。
corrupt
読 めない、もしくは損傷したキューファイルは検査のた
めにここに移動されます。
配送状態レポート
qmgr デーモンは次のディレクトリのメッセージごとの配送状 態
レポートに注目しつづけます。それぞれの状態レポートファイル
は対応するメッセージファイルと同じ名前です:
bounce なぜメールがバウンスされたかという受信者ごとの状 態
の情報。これらのファイルは bounce(8) デーモンにより
保守されます。
defer なぜメールが遅延されたかという受信者ごとの状態の 情
報。 これらのファイルは 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)
遅 延キューのスキャンをはじめます。すでに遅延キュー
のスキャンが行なわれている最中であれば、それが終 わ
り次第再びはじめます。
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 のような複数のフ ロ
ントエンドプロセスとディスクアクセスの競合をします。突然た
くさんのメールが入ってくると、外への配送速度にネガティブな
影響を及ぼすことがあります。
設定パラメータ
以 下の main.cf パラメータは特にこのプログラムに関連があり
ます。文法の詳細やデフォルト値は Postfix main.cf ファイ ル
を参照して下さい。設定の変更後は postfix reload コマンドを
使ってください。
その他
allow_min_user
'-' で始まる受信者アドレスはバウンスしない。
relocated_maps
存在しないユーザ、ホストまたはドメインの連絡情報 の
テーブル。relocated(5) 参照。
queue_directory
Postfix キューのトップレベルディレクトリ。
アクティブなキューの制御
qmgr_message_active_limit
アクティブなキューの数を制限する。
qmgr_message_recipient_limit
メモリに保持する受信者の数を制限する。
こ のパラメータは単期間・メモリ内配送先キャッシュの
サイズも制限します。
タイミング制御
minimal_backoff_time
遅延メッセージの配送試行間隔の最低秒数。
このパラメータは単期間・メモリ内配送先 状 態 キャッ
シュ に 届 かない配送先を記憶しておく時間も制限しま
す。
maximal_backoff_time
遅延メッセージの配送を試行する最大間隔秒数。
maximal_queue_lifetime
配送できないとして返送するまでキューに入っている 最
大の日数。
queue_run_delay
遅 延キューをスキャンする間隔の秒数。キューのスキャ
ンは重なりません。
transport_retry_time
壊れた配送方法に連絡を試みる間隔の秒数。
並列度制御
下の文で transport は master.cf の最初のフィールドを指しま
す。
qmgr_fudge_factor (有効範囲: 10..100)
大 きなメーリングリストのメッセージ配送にビジーなメ
ールシステムが使う配送リソースのパーセン テ ー ジ。
100% では、あるメッセージの配送は前のメッセージが配
送されるまで始まりません。これは大きなメーリング リ
ストに対しては良い結果を生みますが、1 対 1 のメール
では応答時間が悪くなります。100% より小さくすると、
1 対 1 のメールでは応答時間が向上しますが、大きなメ
ーリングリストの配送は悪くなります。最悪の場合、 リ
ス トの最初の受信者はすぐにメッセージを受け取ります
が、最後の人は同じメッセージが 1 日後に受け取 り ま
す。
qmgr_site_hog_factor (有効範囲: 10..100)
一 つのサイトへの配送にビジーなメールシステムが使う
配送リソースのパーセンテージ。100% では先入れ先出し
の 順でメールは配送され、あるホストへのメールの送信
が他の目的地へのメールを妨げるかもしれません。 100%
よ り小さくすると、過剰なメールは遅延されます。遅延
されたメールは少しずつ送信され、未処理のうちの残 り
は 再 び 遅延され、Postfix が配送できるメールを遅延
キューから探すのに大量の I/O が生じます。
initial_destination_concurrency
同じ配送先に並列で配送する際の、配送先ごとの並列 度
の初期値。
default_destination_concurrency_limit
同じ配送先への並列度の制限数のデフォルト。
transport_destination_concurrency_limit
指定されたメッセージ transport での同じ配送先に対す
る並列配送数の制限。
受信者制御
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