1、ulimit
set or get the shells resource usage limits
ulimit [OPTIONS] [LIMIT]
2、option
① -a 显示当前所有的资源限制。
② -c size:设置core文件的最大值。单位:blocks
③ -n size 指定同一时间最多可开启的文件数
④ -l size:设置在内存中锁定进程的最大值。单位:KB
⑤ -m size:设置可以使用的常驻内存的最大值。单位:KB
⑥ -s size:设置堆栈的最大值。单位:kbytes
⑦ -t size:设置CPU使用时间的最大上限。单位:seconds
⑧ -v size:设置虚拟内存的最大值。单位:kbytes
3、示例
1)ulimit -s 262140 //设置堆栈的最大值为256M,默认为10M
通过/etc/profile或/.bash_profile中添加该命令来使系统记住该值
source /root/.bash_profile
/etc/security/limits 对这些值进行了定义
2)ulimit -u 10000 //用户的最大进程数
3)ulimit -n 4096 //将每个进程可以打开的文件数目设置为4096
4)其他建议设置成无限制(unlimited)的一些重要设置是:
① 数据段长度:ulimit -d unlimited
② 最大内存大小:ulimit -m unlimited
③ 堆栈大小:ulimit -s unlimited
④ CPU 时间:ulimit -t unlimited
⑤ 虚拟内存:ulimit -v unlimited
⑥ core文件大小 ulimit -c unlimited/size
说明:
文件cat /proc/sys/kernel/core_pattern/ 记录当下core文件的位置,core则为当前目录。
5)通过ulimit可以对进程和用户分别做资源限制了。很多应用需要对整个系统的资源使用做一个总的限制,这时候我们需要修改 /proc 下的配置文件。
/proc 目录下包含了很多系统当前状态的参数,例如 /proc/sys/kernel/pid_max。
4、C语言中的ulimit,get and set user limits。[5]
参考
【1】 http://linux.die.net/man/1/ulimit
【2】 更多参数的叙述
http://linux.die.net/man/1/ulimit
http://zhangyafeng0917.blog.163.com/blog/static/44436412201082921948750/
【3】 讲解了几个应用场景
http://www.justwinit.cn/post/2650/
【4】 举了很多应用实例
http://hi.baidu.com/fengjian1585/blog/item/b49aa7a232f1f1b9cbefd023.html