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