saslauthd 使用太多内存

Bri*_*ong 6 email-server postfix saslauthd

今天醒来发现我的网站缓慢/无响应。向上拉,看起来大量 saslauthd 进程已经启动,每个进程使用大约 64m 的 RAM,导致机器进入交换空间。我从来没有见过这么多用在那里。

top - 16:54:13 up 85 days, 11:48,  1 user,  load average: 0.32, 0.50, 0.38
Tasks: 143 total,   1 running, 142 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.7%us,  0.3%sy,  0.0%ni, 97.3%id,  0.2%wa,  0.0%hi,  0.0%si,  1.4%st
Mem:   1048796k total,  1025904k used,    22892k free,    14032k buffers
Swap:  2097144k total,   332460k used,  1764684k free,   194348k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                  
  848 admin     20   0  263m 115m 4840 S    0 11.3   5:02.91 ruby                                                                                      
  906 admin     20   0  265m 113m 4828 S    0 11.1   5:37.24 ruby                                                                                      
30484 admin     20   0  248m  91m 4256 S    6  9.0 219:02.30 delayed_job                                                                               
 4075 root      20   0  160m  65m  952 S    0  6.4   0:24.22 saslauthd                                                                                 
 4080 root      20   0  162m  64m  936 S    0  6.3   0:24.48 saslauthd                                                                                 
 4079 root      20   0  162m  64m  936 S    0  6.3   0:24.70 saslauthd                                                                                 
 4078 root      20   0  164m  63m  936 S    0  6.2   0:24.66 saslauthd                                                                                 
 4077 root      20   0  163m  62m  936 S    0  6.1   0:24.66 saslauthd                                                                                 
 3718 mysql     20   0  312m  52m 3588 S    1  5.1   3499:40 mysqld                                                                                    
  699 root      20   0 72744 7640 2164 S    0  0.7   0:00.50 ruby                                                                                      
15701 postfix   20   0  106m 5712 4164 S    1  0.5   0:00.50 smtpd                                                                                     
15702 postfix   20   0 52444 3252 2452 S    1  0.3   0:00.06 cleanup                                                                                   
 4062 postfix   20   0 41884 3104 1788 S    0  0.3 125:26.01 qmgr                                                                                      
15683 root      20   0 51504 2780 2180 S    0  0.3   0:00.04 sshd                                                                                      
14595 postfix   20   0 52308 2548 2304 S    1  0.2   0:24.60 proxymap                                                                                  
15483 postfix   20   0 43380 2544 1992 S    0  0.2   0:00.38 smtp                                                                                      
15486 postfix   20   0 43380 2544 1992 S    0  0.2   0:00.36 smtp                                                                                      
15488 postfix   20   0 43380 2540 1992 S    0  0.2   0:00.38 smtp                                                                                      
15485 postfix   20   0 43380 2532 1984 S    0  0.2   0:00.36 smtp                                                                                      
15489 postfix   20   0 43380 2532 1984 S    0  0.2   0:00.40 smtp 
Run Code Online (Sandbox Code Playgroud)

不确定 Saslauthd 是什么,谷歌说它处理植物身份验证。机器已经通过postfix发送了很多电子邮件,所以这可能是相关的。

有谁知道为什么这么多人可能会旋转?他们杀人安全吗?谢谢!

And*_*ehm 6

我有同样的问题 - 应该可以禁用缓存。

要在 debian 中禁用缓存,您需要编辑 /etc/default/saslauhtd:

OPTIONS="-r -c -m /var/spool/postfix/var/run/saslauthd"
Run Code Online (Sandbox Code Playgroud)

要将缓存大小限制为 5MB,您可以添加 -s 参数:

OPTIONS="-s 5120 -r -c -m /var/spool/postfix/var/run/saslauthd"
Run Code Online (Sandbox Code Playgroud)

要限制同一文件中的守护进程数量:

THREADS=2
Run Code Online (Sandbox Code Playgroud)

OPTIONS 变量包含 saslauthd 守护程序的参数 - 您也可以在其他 linux 系统中使用它们。

不过有时候好像没什么效果……

如果您使用 pam 和/或 mysql,则存在一些已知的内存泄漏。

EG http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=379810


Dom*_*Dom 1

Saslauth 允许您的用户在身份验证后发送邮件。您可以在 SMTPS 协议中使用它,以允许经过身份验证的用户通过您的服务器中继邮件。你配置一下吗?-a 选项提供了一系列可用的身份验证机制。使用完整的命令行检查 ps/top 以查看 -a 选项。

由于它与 Postfix 交互,因此应将其放置在 postfix var 环境中。我记得 Debian 中默认情况并非如此,它会消耗 cpu 或内存。检查-m选项你想要的目录是否确实存在并且权限是否良好