smtpd
私のWebサーバーのプロセスリストには多くのブランチがあります。どういう意味ですか?
私のメールボックスがいっぱいですか?
postfix 2662 0.0 0.9 106336 4856 ? S 17:37 0:00 smtpd -n
smtp -t inet -u -c -o stress yes
postfix 2800 0.0 0.9 106336 4860 ? S 15:59 0:00 smtpd -n
smtp -t inet -u -c -o stress yes
postfix 3644 0.0 0.9 106336 4864 ? S 13:47 0:00 smtpd -n
smtp -t inet -u -c -o stress
postfix 3732 0.0 0.9 106336 4872 ? S 14:36 0:00 smtpd -n
smtp -t inet -u -c -o stress yes
postfix 3835 0.0 0.9 106336 4868 ? S 14:36 0:00 smtpd -n
smtp -t inet -u -c -o stress yes
postfix 4309 0.0 0.9 106336 4864 ? S 13:48 0:00 smtpd
-n smtp -t inet -u -c -o stress
postfix 4603 0.0 0.9 106336 4860 ? S 16:13 0:00 smtpd -n
smtp -t inet -u -c -o stress yes
postfix 4843 0.0 0.9 106336 4864 ? S 13:49 0:00 smtpd -n
smtp -t inet -u -c -o stress
私のプロセスリストにはこのような行がたくさんあります。 pstreeの出力は次のようになります。
├─master─┬─anvil
│ ├─cleanup
│ ├─pickup
│ ├─proxymap
│ ├─qmgr
│ └─100*[smtpd]
編集:最近、外部IPのlocalhostから受信するようにmysqlを変更しました。メールログに次のエラーが表示されます。
warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on
'127.0.0.1' (111)
May 21 22:23:00 postfix/trivial-rewrite[15741]: fatal: mysql:/etc/postfix/mysql-
virtual_mailbox_domains.cf(0,lock|fold_fix): table lookup problem
May 21 22:23:01 postfix/smtpd[31036]: warning: problem talking to service rewrite:
Success
May 21 22:23:01 postfix/smtpd[30757]: warning: problem talking to service
rewrite:
Connection reset by peer
私のログがあふれてすでに600MBを超えています。外部IPを受信するようにpostfixをどのように変更しますか? localhostではなく、私の家の場所からmysqlに接続する必要がありますか?
答え1
smtpdは、Postfixによって実行され、着信メール(ローカルまたはリモート)を処理します。一度に 100 個のメールを実行する場合、サーバーが多くのメールを処理しているのです。メールがあまり生成されないと思われる場合は、サーバーが返信されたメールをたくさん受信しているか、ユーザーが認識しないメールをたくさん送信している可能性があります。
smtpdプロセス数のデフォルトの制限は100であり、常にこの制限に達するようです。
サフィックスの配置を確認して、実行中の作業を確認してください。
これが正当な接続ですが、使用できる接続数を減らしたい場合は、
/etc/postfix/main.cf:
default_process_limit = 10
制限事項を変更してください。
更新の結果、問題がMySQL接続に関連していることがわかりました。他の答えと同様に、127.0.0.1と外部IPアドレスを受信するようにMySQLを変更できます。 MySQLがローカル接続の受信を停止するのはまれです。
MySQLの場合、バインドアドレスを0.0.0.0に設定してすべてのインタフェースを強制的に受信するか、設定ファイルのバインドアドレスセクションをコメントアウトします(同じ効果を達成します)。
答え2
エラーログで引用したエラーは、Postfixが127.0.0.1のMySQLサーバーに接続できないことです。これは、MySQLサーバーに127.0.0.1でリッスンしないように指示したためです。プロセスの数が多いのは、仮想メールボックス検索のためにMySQLを照会しようとしたときに複数回失敗したためです。
MySQLが実際にリッスンしているアドレスを使用してMySQLサーバーに接続しようとするPostfixに指示する必要があります。/etc/hosts
ファイルにホスト名エントリがある場合は、そのエントリを使用してください。それ以外の場合は、MySQLがリッスンするように設定したIPアドレスを使用してください。
alias_maps = mysql:/etc/postfix/mysql-aliases.cf
Postfixファイルがあると仮定すると、次のようにmain.cf
更新できます。/etc/postfix/mysql-aliases.cf
hosts = a.b.c.d
a.b.c.d
MySQLを受信するように設定したアドレスはどこにありますか?