ulimit -a 显示当前用户的各种限制。
ulimit -n 的数值表示每个进程可以打开的文件数目。
一般情况下, ulimit -n 的数值是1024.
当进程打开的文件数目超过此限制时,该进程就会退出。
因此,有些时候我们需要修改此限制。
如果我们只是普通用户,只是暂时的修改ulimit -n,可以直接shell命令来修改(ulimit -n 1024000)。但是这个设置时暂时的保留!当我们退出bash后,该值恢复原值。
如果要永久修改ulimit,需要修改/etc/security/limits.conf。
vim /etc/security/limits.conf
# 添加如下的行
* soft nofile 102400
* hard nofile 102400
* soft nproc 65535
* hard nproc 65535
以下是说明:
* 代表针对所有用户
noproc 是代表最大进程数
nofile 是代表最大文件打开数
添加格式:
username|@groupname type resource limit
username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。
type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。
resource:
core - 限制内核文件的大小(kb)
date - 最大数据大小(kb)
fsize - 最大文件大小(kb)
memlock - 最大锁定内存地址空间(kb)
nofile - 打开文件的最大数目
rss - 最大持久设置大小(kb)
stack - 最大栈大小(kb)
cpu - 以分钟为单位的最多 CPU 时间
noproc - 进程的最大数目
as - 地址空间限制
maxlogins - 此用户允许登录的最大数目
文件保存之后,需要重新登录一次才能生效,如果重新登录不行 就需要重启一下。
注:open file这个参数只要使用root用户编辑后,就会自动生效 ...?待考证