用途:ulimit用于shell启动进程所占用的资源.
类别:shell内建命令
语法格式:ulimit [-acdfHlmnpsStvw] [size]
参数:
-H 设置硬资源限制.
-S 设置软资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes
-u <程序数目> 用户最多可开启的程序数目
注意事项:ulimit命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效
修改方法:
1、若要令修改ulimits的数值永久生效,则必须修改配置文档,可以给ulimit修改命令放入/etc/profile里面,这个方法实在是不方便。
2、还有一个方法是修改/etc/sysctl.conf。我修改了,测试过,但对用户的ulimits -a 是不会改变的,只是/proc/sys/fs/file-max的值变了。
3、正确的做法,应该是修改/etc/security/limits.conf,加上如下内容
* soft nofile 8192
* hard nofile 20480
4、可能需要的后续步骤
/etc/pam.d/login 文件中存在一下内容: session required /lib/security/pam_limits.so
/etc/pam.d/system-auth 文件有下面内容 session required /lib/security/$ISA/pam_limits.so
这一行确保系统会执行这个限制。
一般用户的重新登陆 执行#ulimit -n 1024
其他参考资料:
1、通过 ulimit 改善系统性能 https://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/
2、Linux/Unix ulimit命令详解 http://www.linuxidc.com/Linux/2012-10/72782.htm