nofile 不能按照 limit.conf 中的描述工作

nofile 不能按照 limit.conf 中的描述工作

我们在生产中遇到了一个问题,我怀疑这可能是由于达到 nofile 限制引起的,但我找不到跟踪或直接证据。我们在 RHEL 7 上运行。我使用lsof下面的命令来查找用户打开的文件描述符的数量。

/sbin/lsof -u <issue_user> | awk '$4 ~ /[0-9]+[rwu -].*/'

该命令的部分awk是仅获取以整数开头的文件描述符,并忽略 mem/rtd/cwd 等。上面的命令返回了超过 400,000 个结果,但在 中/etc/security/limits.conf,用户的 nofile 限制为 131072。

cat /etc/security/limits.conf
...
<issue_user>  hard    nofile  131072
<issue_user>  soft    nofile  131072
...

ulimit -aH以问题用户身份运行:

$ ulimit -aH
address space limit (Kibytes)  (-M)  unlimited
core file size (blocks)        (-c)  unlimited
cpu time (seconds)             (-t)  unlimited
data size (Kibytes)            (-d)  unlimited
file size (blocks)             (-f)  unlimited
locks                          (-x)  unlimited
locked address space (Kibytes) (-l)  unlimited
message queue size (Kibytes)   (-q)  800
nice                           (-e)  0
nofile                         (-n)  131072
nproc                          (-u)  131072
pipe buffer size (bytes)       (-p)  4096
max memory size (Kibytes)      (-m)  unlimited
rtprio                         (-r)  0
socket buffer size (bytes)     (-b)  4096
sigpend                        (-i)  724561
stack size (Kibytes)           (-s)  32768
swap size (Kibytes)            (-w)  not supported
threads                        (-T)  not supported
process size (Kibytes)         (-v)  unlimited

根据/etc/security/limits.conf,nofile 是“打开文件描述符的最大数量”。为什么该用户可以拥有比 中定义的更多的打开文件描述符limits.conf

相关内容