Linux中ulimit使用

Linux中ulimit使用

1.作用:

ulimit是一个内建命令,用于控制由shell启动的进程的可用资源。

 

2.ulimit命令:

格式:ulimit [options] [limit]

参数:

选项        含义

-a                    显示当前系统所有的limit资源信息。

-H                   设置硬资源限制,一旦设置不能增加。

-S                    设置软资源限制,设置后可以增加,但是不能超过硬资源设置。

-c                    最大的core文件大小,单位blocks。

-f                     进程可以创建文件的最大值,单位blocks。

-d                    进程最大的数据块大小,单位KB。

-m                   最大内存大小,单位KB。

-n                    查看进程可以打开的最大文件描述符的数量。

-s                    线程栈大小,单位KB。

-p                    管道缓冲区的大小,单位KB。

-u                    用户最大可用进程数。

-v                    进程最大可用的虚拟内存,单位KB。

-t                    最大CPU占用时间,单位秒。

-l                     最大可加锁内存大小,单位KB。

 

例:查看当前系统所有的限制资源,并修改打开文件句柄数限制。

 

3.常用限制资源类型:

  1. 限制内核文件的大小(core file size)
  2. 限制数据块大小(data seg size)
  3. 限制Shell进程创建的文件大小(file size)
  4. 限制可加锁内存大小(max locked memory)
  5. 限制常驻内存集大小(max memory size)
  6. 限制打开文件句柄数(open file)
  7. 限制分配堆栈的最大大小(stack size)
  8. 限制CPU占用时间(cpu time)
  9. 限制单个用户最大可用的进程数(max user processes)
  10. 限制shell进程所能使用的最大虚拟内存(virtual memory)

 

4.如何生效:

在当前shell会话中设置的值都只是针对于当前shell环境临时生效,在shell会话终止后设置的限制便失效,与其他shell会话无关联。

要想使这种限制永久且多会话生效,这里有几种方式实现:

  1. 针对于某用户,可将其加入该用户的启动脚本

在该用户的.bashrc或者.bash_profile文件中添加设置

ulimit –n 4096

保存后重新登录生效

  1. 针对于所有系统用户

修改linux用户的环境变量文件/etc/profile

ulimit –n 4096

保存后运行命令source /etc/profile生效

  1. 针对于不同用户且能实现永久生效

/etc/security/limits.conf配置文件

limits.conf配置文件能限制指定用户或用户组的资源使用。修改后重新登录生效。

示例:

格式:<domain>     <type>     <item>     <value>

常用domain有三种:uername@groupname*(通配符*代表所有用户)

type也是三种:hardsoft-

hard表示硬资源限制,在系统中所能设定的最大值。

soft表示软资源限制,soft的值不能超过hard的值。

-表示同时设置了hard和soft的值。

item:

  1. core—内核文件大小
  2. date—最大数据块大小
  3. fsize—最大文件大小
  4. memlock—最大可加锁内存大小
  5. nofile—打开文件句柄数
  6. rss—最大持久设置大小
  7. stack—最大分配堆栈大小
  8. cpu—占用cpu时间(分钟为单位)
  9. noproc—最大进程数
  10. as—地址空间限制
  11. maxlogins—用户最大允许登录数(root除外)
  12. maxsyslogins—系统允许所有登录的最大数量

 

5.经验总结:

在limit限制中,最常关注的是:

open file :一个进程可打开的最大文件数

max user processes:系统允许创建的最大进程数

查看当前系统打开文件数总量:lsof | wc –l

查看当前进程打开文件数:lsof –p pid |wc –l

查看系统总限制最大打开文件总量:cat /proc/sys/fs/file-max

查看当前系统上进程总量:ps –ef |wc –l

(以root权限使用lsof命令)

 

常见相关报错:

1:too many open file in this system

2:fork:Resource temporarily unavailable

遇到以上报错优先考虑资源不足引发问题

 

注:limit.conf限制资源与PAM关系紧密,下篇详细介绍。

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值