使用ulimit -a 可以查看系统使用的资源
core file size 设定core文件的最大值,单位为区块,如果指定为0,不会产生core文件
data seg size 设定数据段的最大值,单位为KB
scheduling priority 进程优先级的限定:这个值对root不起作用
file size shell所能建立的最大文件大小,单位为区块
pending signals 进程最大挂起/阻塞的信号量数量
max locked memory 可以锁住的物理内存的最大值,单位:kbytes,这个值只root用户不起作用,锁定内存的操作由mlock()函数提供,避免swap in/ swap out
max memory size 可以使用的常驻内存的最大值,单位:kbytes
open files 指系统打开的最大文件数,若超出1024容易报error:too many open files
pipe size 设置管道的最大值,单位为block,1 block=512 bytes
POSIX message queues POSIX的消息队列的最大值为819200字节
real-time priority 限制程序实时优先级的范围,只针对普通用户,root不起作用
stack size 指定线程堆栈的最大值,单位:kbytes
cpu time 指定进程使用的CPU时间的上限,单位为秒
max user processes 用户最多可开启的程序数目
virtual memory 指定可使用的虚拟内存上限,单位为KB
file locks 所能锁住的文件的最大个数没有限制
有如下三种修改方式:
1. 在/etc/rc.local 中增加一行 ulimit -SHn 65535
2. 在/etc/profile 中增加一行 ulimit -SHn 65535
3. /etc/security/limits.conf是Linux系统资源使用的配置文件,用来设置用户对系统资源的使用
语法:<domain>:
表示限定的对象,可以是用户、用户组(组名前加@区分用户)、或者*(所有用户)
<type>:
soft 表示告警的设定,即超过这个值就会产生告警信息
hard 表示严格的设定,肯定不会超过这个设定的值
<item>:
core:限制内核文件大小
data:最大数据大小
fsize:最大文件大小
memlock:最大锁定内存地址空间
nofile:打开文件的最大数目
rss:最大持久设置大小
stack:最大栈大小
cpu:以分钟为单位的最多CPU时间
noproc:进程的最大数目
as:地址空间限制
<value>:
表示要限制的值
例如:
1、所有用户打开文件的最大数目为65535,超过65535就会告警
2、所有用户打开文件的最大数目为65535,不会超过这个值
3、所有mysql组的用户最大锁定内存地址空间不限制(有点没理解~-~)
4、所有mysql组的用户最大锁定内存地址空间不限制
注意:在修改进程数资源的时候,/etc/security/limits.d/90-nproc.conf文件的会制约limits.conf文件的nproc进程数,所以如果改了limits.conf文件的nproc发现值未生效,90-nproc.conf文件也要添加nproc的相关参数