saslauthd 使用过多内存

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 

不确定 Saslauthd 是什么,Google 表示它处理 plantext 身份验证。该机器一直通过 postfix 发送大量电子邮件,因此这可能与此有关。

有人知道为什么这么多的病毒会爆发吗?杀掉它们安全吗?谢谢!

答案1

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

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

OPTIONS="-r -c -m /var/spool/postfix/var/run/saslauthd"

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

OPTIONS="-s 5120 -r -c -m /var/spool/postfix/var/run/saslauthd"

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

THREADS=2

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

但有时候好像没效果...

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

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

答案2

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

由于它与 Postfix 交互,因此应将其放置在 postfix var 环境中。我记得默认情况下 Debian 中不是这种情况,并且会占用 CPU 或内存。检查 -m 选项,看看您想要的目录是否确实存在,并且权限是否良好

答案3

这是旧帖子,但我的回答可以提供帮助。我使用了 courier-authdaemon 而不是 saslauthd。更多信息https://github.com/pulecp/ubuntu-postfix-cyrus

相关内容