67、ulimit的使用

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语言中的ulimitget and set user limits[5]

参考

1http://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

5http://linux.die.net/man/3/ulimit

原文地址:https://www.cnblogs.com/mydomain/p/2218480.html