01 May 2022
/proc/sys/fs/file-max是linux内核级别的设定,影响的是linux系统上所有进程可以打开的文件数上限ulimit是用户或用户组级别,通过PAM登录的login shell,fork出的进程可以打开的文件数上限;/proc/sys/fs/file-nr是系统级别当前打开文件状态/proc/$pid/limits是指定进程的资源限制上限参考文档:
ulimit设定的是每个进程的属性,而不是该用户所有进程的总限制
ulimit vs file-max
如何计算最大文件打开数应该设定多少
# 查看linux内核级别的文件描述符上限 cat /proc/sys/fs/file-max 97984 # 查看目前系统使用的文件描述符数量 cat /proc/sys/fs/file-nr 512 0 97984 # 512 -> 分配并使用的文件描述符数量 # 0 -> 分配却未使用的文件描述符数量 # 97984 -> 内核级别的最大文件描述符数量
cat /proc/397/limits | grep "open files" Max open files 2048 2048 files