max-file 表示系统级别的可以打开的文件句柄的数量。是对整个系统的限制,并非针对用户的。
ulimit -n 控制进程级别可以打开的文件句柄的数量。提供对shell及其启动的进程的可用文件句柄的控制。这是进程级别的。linux
对于服务器来讲,file-max和ulimit都须要设置,不然会出现文件描述符耗尽的问题。
通常若是遇到文件句柄达到上限时,会碰到"Too many open files"或者Socket/File: Can’t open so many files等错误。shell
为了让服务器重启以后,配置仍然有效,须要用永久生效的配置方法进行修改。
max-file:vim
查看系统级别的可以打开的文件句柄的数量,Centos7默认是794168
#cat /proc/sys/fs/file-max服务器
794168session
系统级打开最大文件句柄的数量永久生效的修改方法,修改文件,文件末尾加入配置内容:
#vim /etc/sysctl.confide
fs.file-max = 2000000进程
而后执行命令,使修改配置当即生效:
#sysctl -p同步
ulimit:it
查看用户进程级的可以打开文件句柄的数量,Centos7默认是1024
这里设置的是当前shell的当前用户的打开的最大限制,若是当前用户打开多个shell,则每一个shell都能打开该最大值io
#ulimit -n
1024
进程级打开文件句柄数量永久生效的修改方法,修改文件,文件末尾加入配置内容:
这里限制一个用户的全部shell能打开的最大数:
#vim /etc/security/limits.conf
soft nofile 65535
修改之后,须要从新登陆才能生效。
若是须要设置当前用户session当即生效,还须要执行:
#ulimit -n 65535
对于服务器,通常修改进程级的最大打开文件句柄数便可(系统默认1024,有点小)。通常不须要调整系统级的最大数。
若是出现了达到系统级别最大限制时,也须要同步调整系统级的最大数的。
linux 中数据的含义 /proc/sys/fs/file-nr
[root@localhost logs]# cat /proc/sys/fs/file-nr
2112 0 2100000
已分配文件句柄的数目 已使用文件句柄的数目 文件句柄的最大数目