ulimit -a详解

修改需要root权限!!!!!

ulimit的功能描述:
假设一台机器现在有10人登陆,在系统资源没有限制的情况下,一个人又打开500个文件,每个文件有10m,那这个时候系统内存的资源就收到严重的挑战
而实际应用的环境要比这种假设复杂的多,例如在一个嵌入式开发环境中,各方面的资源都是非常紧缺的,对于开启文件描述符的数量,分配堆栈的大小,CPU 时间,虚拟内存大小,等等,都有非常严格的要求。资源的合理限制和分配,不仅仅是保证系统可用性的必要条件,也与系统上软件运行的性能有着密不可分的联系。这时,ulimit 可以起到很大的作用,它是一种简单并且有效的实现资源限制的方式。

在大型公司,有时候打的集群个访问量,有时候需要跑很多程序,有时候程序会莫名奇怪的挂掉,这个时候就需要看看你的ulimit的设置了

工作中最长用的参数:
ulimit -a 列出所有的参数选项
ulimit -H 设置硬件资源限制
ulimit -S 设置软件资源限制
ulimit -n 设置应许打开文件数

修改ulimit参数,配置文件是:/etc/security/limits.conf
格式:
domain:可以是用户或者用户组 *代表所有
type:可以有两个值,soft 和 hard
item:表示要限定的资源 可以有很多候选值,如 stack(最大堆栈大小),cpu(占用cpu的时间),nofile(最大打开文件数) 等等
例:* hard nofile 100 该行配置语句限定了任意用户所能创建的最大文件数是 100。
默认都是用的是soft
使用 ulimit 限制程序所能创建的 socket 数量
考虑到现实生活中的需求,在c/s模式中,一个服务器可能有多个客户端进行访问,如果socket数量过多,这是server就需要创建大量的socket端口,系统中往往是限制一个程序创建socket端口的个数的。那如何实现呢,当然是通过ulimit限制,ulimit并没有socket的参数选项,但是在linux系统中,一切皆文件,
1.我们是通过设置nofile的个数来显示socket的个数的(ulimit -n),
2.设置linux的最大进程数来控制(ulimit -u)

linux的系统默认是1024,但是在实际情况下往往是不够用的,可以根据自己的需要进行设置,我们单位平时设置的是196605
还有一个参数就是max user processes 最大进程数 ulimit -u 设置成196605

转载自http://lingjing.blog.51cto.com/9190942/1682173

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值