超过限制时进行记录

超过限制时进行记录

/etc/security/limits.conf是否有一个日志文件用于记录超出设置值时的信息?

如果上述文件中的值太紧,则使用服务器上托管的网站的客户端将看到诸如 之类的错误[FATAL] failed to allocate memory。但我不会对此感到害怕。那么有日志吗?

如果没有,那么有没有办法在超出值时进行记录?

答案1

对于您要做的事情来说,limits.conf 是一个太迟钝的工具。

cgroups 将为您设置限制并提供会计,但文档有点晦涩难懂!https://www.kernel.org/doc/Documentation/cgroups/memory.txt

答案2

是否有一个日志文件用于记录超出 /etc/security/limits.conf 中设置的值时的信息?

没有。

所有这些值最终都会影响到进程资源限制(man setrlimit),并且当它们达到上限时,没有通用的机制来发出警告并记录下来。

答案3

如果您的问题是关于内存分配失败,您也可以使用此脚本来监视剩余可用内存的百分比

#!/bin/bash
# you can adjust 0.20 meaning 20% to percentage of memory free you want 
output=$(free | grep "Swap" | awk '{if (($4/$2) < 0.20) print "memory low"}')
if [[ "$output" != "" ]]; then
    echo "..." | mail -s "Memory low on <host>" <monitoring email>
fi

将其保存到脚本文件(例如 memmon.sh)并添加到 crontab,当检测到可用内存不足时,它将发送电子邮件并写入日志文件)

# Ex. monitor every 3 min.
*/3 * * * * /home/user/memmon.sh >> /home/user/memmon.log

相关内容