Debian 邮件服务器收件慢的定位与优化
一 快速定位思路
tail -f /var/log/syslog 或 journalctl -u postfix -u dovecot -fpostqueue -p(Postfix),或 exim4 -bpc(Exim)dig yourdomain.com MX +short、dig mx.yourisp.com A +shorttelnet mx.yourisp.com 25、openssl s_client -connect mx.yourisp.com:25 -starttls smtptop/htop、vmstat 1、iostat -x 1、free -m、df -h,确认 CPU/内存/磁盘IO/网络 是否成为瓶颈。二 常见原因与对应优化
/etc/sysctl.conf:
net.core.default_qdisc=fqnet.ipv4.tcp_congestion_control=bbrsysctl -p 生效。iostat 看磁盘是否持续满载。default_process_limit = 100smtpd_client_connection_count_limit = 50queue_run_delay = 1000s(默认 1000ms,视负载调大/调小)minimal_backoff_time = 1000s、maximal_backoff_time = 6000s/etc/default/postgrey 将 POSTGREY_OPTS="--delay=60" 调整为 60 秒以平衡延迟与命中率;在 /etc/postfix/main.cf 的 smtpd_recipient_restrictions 中加入 check_policy_service inet:127.0.0.1:10023。bayes/pyzor/razor),避免每次远程查询;三 面向 Postfix 的实用配置示例
apt-get install postgrey/etc/default/postgrey 设置 --delay=60;重启 systemctl restart postgrey/etc/postfix/main.cf 的 smtpd_recipient_restrictions 中加入:
check_policy_service inet:127.0.0.1:10023postfix reloaddefault_process_limit = 100smtpd_client_connection_count_limit = 50queue_run_delay = 1000s、minimal_backoff_time = 1000s、maximal_backoff_time = 6000s/etc/sysctl.conf 加入:
net.core.default_qdisc=fqnet.ipv4.tcp_congestion_control=bbrsysctl -ppostfix reload四 面向 Exim 的实用配置示例
systemctl status exim4ss -lntp | grep :25dig yourdomain.com MX +short、telnet mx.yourisp.com 25apt-get install postgreyacl_check_rcpt 阶段)以启用灰名单,延迟可在 Postgrey 配置中设为 60 秒。queue_only_load、retry_interval 与 timeout 等参数,避免频繁重试与过长退避。systemctl restart exim4五 持续监控与扩容建议
top/htop、vmstat 1、iostat -x 1、free -m、df -hpostqueue -p、exim4 -bpc、tail -f /var/log/syslog | egrep 'postfix|exim|dovecot'