共计 1562 个字符,预计需要花费 4 分钟才能阅读完成。
摘要: ulimit 用来限制每个用户可使用的资源,如 CPU、内存、句柄等。下面以 CentOS 6.5 为例进行总结。
ulimit 用来限制每个用户可使用的资源,如 CPU、内存、句柄等。下面以 CentOS 6.5 为例进行总结。
1 查看 ulimit
命令格式:
ulimit [-SHacdefilmnpqrstuvx]
- 参数S:表示软限制,当超过限制值会报警
- 参数H:表示硬限制,必定不能超过限制值
- 参数a:将列出所有资源限制,如:
- 参数c:当某些程序发生错误时,系统可能会将该程序在内存中的信息写成文件(除错用),这种文件就被称为核心文件(core file)。此为限制每个核心文件的最大容量
- 参数d:每个进程数据段的最大值
- 参数f:当前 shell 可创建的最大文件容量
- 参数l:可以锁定的物理内存的最大值
- 参数m:可以使用的常驻内存的最大值
- 参数n:每个进程可以同时打开的最大文件句柄数
- 参数p:管道的最大值
- 参数s:堆栈的最大值
- 参数t:每个进程可以使用 CPU 的最大时间
- 参数u:每个用户运行的最大进程并发数
- 参数v:当前 shell 可使用的最大虚拟内存
2 修改 ulimit
命令格式:
ulimit [-SHcdefilmnpqrstuvx] [limit]
在查看的命令后面加上限制值,就可以调整某一项限制,但只对当前登录 shell 有效。
参数 S 表示设置软限制;参数 H 表示设置硬限制;当都不指定时,表示设置软限制和硬限制均为指定值。
3 永久修改 ulimit
所谓永久,是指每次登陆 shell 时,都会按配置重新设定ulimit,以达到永久生效的效果。
- 步骤一:修改/etc/security/limits.conf
添加如下内容:
关于该文件的配置方式请参考后文
[root@CentOS646506 ~]# vim /etc/security/limits.conf
* hard nproc 64000
* soft nproc 64000
* hard nofile 64000
* soft nofile 64000
以上内容表示,将-u 和-n 的软限制和硬限制同时修改为 64000。
- 步骤二:修改 /etc/pam.d/login
添加如下内容:
[root@CentOS646506 ~]# vim /etc/pam.d/login
session required pam_limits.so
以上内容表示,在登录时使用pam 管理limit。
- 步骤三:修改 /etc/profile
添加如下内容
[root@CentOS646506 ~]# vim /etc/profile
ulimit -u 64000
ulimit -n 64000
每次登陆 shell 后,会初始执行这两条ulimit 命令,并使其生效。
- 步骤四:使配置生效
重新登录或使用source /etc/profile 立即生效。
source 使当前 shell 对指定文件内容生效。
3.1 /etc/security/limits.conf 配置详解
格式:
<domain> <type> <item> <value>
- domain 是指生效实体
- 用户名
- 也可以通过@group 指定用户组
- 使用* 表示默认值
- type 指限制类型
- soft 软限制
- hard 硬限制
- item限制资源
- core 同ulimit -c
- data 同ulimit -d
- fsize 同ulimit -f
- memloc 同ulimit -l
- nofile 同ulimit -n
- stack 同ulimit -s
- cpu 同ulimit -t
- nproc 同ulimit -u
- maxlogins 指定用户可以同时登陆的数量
- maxsyslogins 系统可以同时登陆的用户数
- priority 用户进程运行的优先级
- locks 用户可以锁定的文件最大值
- sigpengding 同ulimit -i
- msgqueue 同ulimit -q
正文完
星哥玩云-微信公众号