Linux系统默认允许用户打开的文件数是1024,对于很多用户/程序来说,这个值是不够用的,怎么扩大呢?
直接ulimit -n 65535 !
但此方法只能本次登陆窗口有效,退出窗口即失效,且,有可能报您没有权限,囧~
一劳永逸的方法是(需要你有root权限):修改/etc/security/limits.conf !
在文件末尾添加:
* soft nofile 65534 * hard nofile 65534
退出窗口,重新登陆,执行ulimit -n 看看是否已经改过来了?
# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 96002 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65534 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 96002 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
如果你的未生效,没有关系,继续下面的步骤:
有的Linux操作系统,如(Ubuntu)不允许配置 * ,你需要配置为需要放大权限的用户,如root:
root soft nofile 65534 root hard nofile 65534
再试一下,是不是OK了?
limits.conf 配置说明: <domain> <type> <resource> <value>
domain: username|@groupname:设置需要被限制的用户名,组名前面加@ 与 用户名 区别。 * 表示所有用户(注意有的系统不支持哦)。
type: soft 指的是当前系统生效的设置值 hard 表明系统中所能设定的最大值 soft 的限制不能比har 限制高 - 就表明同时设置了 soft 和 hard 的值。
resource: as - 地址空间限制 rss - 最大持久设置大小 cpu - 以分钟为单位的最多 CPU 时间 core - 限制内核文件的大小 date - 最大数据大小 stack - 最大栈大小 fsize - 最大文件大小 noproc - 进程的最大数目 nofile - 打开文件的最大数目 memlock- 最大锁定内存地址空间 maxlogins - 此用户允许登录的最大数目
value: 限制的值
要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。 查看 /etc/pam.d/login 文件中有: session required /lib/security/pam_limits.so 或 session required pam_limits.so