smtpdデーモンに分岐が多すぎますか?

smtpdデーモンに分岐が多すぎますか?

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.cfPostfixファイルがあると仮定すると、次のようにmain.cf更新できます。/etc/postfix/mysql-aliases.cf

hosts = a.b.c.d

a.b.c.dMySQLを受信するように設定したアドレスはどこにありますか?

関連情報