smtpd 守护进程分支过多?

smtpd 守护进程分支过多?

smtpd我的网络服务器上的进程列表中有许多分支。这是什么意思?

我的邮箱满了吗?

   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]

编辑:最近我更改了 mysql 以从本地主机侦听我的外部 IP。现在我在邮件日志中收到此错误:

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。如何更改 postfix 来监听我的外部 IP?我需要从我的家庭位置而不是从本地主机连接到 mysql?

答案1

smtpd 由 Postfix 执行来处理传入邮件(本地或远程)。如果您一次运行 100 个邮件,我建议您的服务器正在处理大量邮件。如果您认为自己没有生成那么多邮件,则您的服务器可能会收到大量被退回的邮件,或者正在发送大量您不知道的邮件。

smtpd 进程数量的默认限制是 100,您似乎一直都在达到这个限制。

检查后缀批次以了解它在做什么。

如果这些是合法的连接,但您想要更少的连接,您可以使用,

/etc/postfix/main.cf:
    default_process_limit = 10

更改限制。

您的更新显示该问题与 MySQL 连接有关。与其他答案一样,您可以修复 MySQL 以侦听 127.0.0.1 和外部 IP 地址。停止 MySQL 对本地连接的监听是不寻常的。

对于 MySQL,我将绑定地址设置为 0.0.0.0,这会强制它监听所有接口,或者只是注释掉配置文件中的绑定地址部分(这会实现相同的效果)。

答案2

您从错误日志中引用的错误表明Postfix无法连接到127.0.0.1上的MySQL服务器。这是因为您告诉 MySQL 服务器不要侦听 127.0.0.1。进程计数较高可能是由于多次尝试查询 MySQL 进行虚拟邮箱查找而失败。

您需要告诉 Postfix 使用 MySQL 实际监听的地址尝试连接到 MySQL 服务器。如果您的/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.d你配置MySQL监听的地址在哪里。

相关内容