由于我的服务器受到持续 DNS 放大攻击 (DDOS),我配置了 fail2ban,最初我的传出流量明显下降。
无论如何,几个小时后(通常为 +10),fail2ban 使用了大约 75% 的内存,似乎以某种方式崩溃了,因为传出的流量随后立即增加。当我在网上搜索内存问题时,我发现有些人也在抱怨 fail2ban 内存使用率过高。但推荐的解决方案是在 fail2ban 配置文件中插入 ulimit 命令,这对我来说并没有太大的变化。
答案1
你误解了top
你所说的内容。例如:
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
5 0 1230 1 20 0 351220 9284 poll_s Sl ? 0:14 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock -x
您可能会看到下面的巨大条目VSZ
,并认为它使用了大量 RAM。这是不正确的。该RSS
列测量 RAM 使用情况。VSZ
仅测量地址空间,这本质上是一种无限的资源。
您抓住了某些正常现象,并错误地将其与您遇到的实际问题联系起来。
如果这确实困扰您,请创建一个名为的文件,/etc/default/fail2ban
其中包含 just ulimit -s 256
(或者如果它已经存在,则将其添加到文件末尾)并重新启动 fail2ban。
为了安全起见,请检查以确保您的系统的虚拟内存限制不会低得离谱。有时人们会将虚拟内存与 RAM 混淆,并认为他们需要限制虚拟内存的使用。希望您的系统不是由不知道自己在做什么的人管理的,并且没有使用像 OpenVZ 这样的脑残软件。