limit资源设置
前言
Linux中limit参数设定一般可以通过ulimit命令或编辑/etc/security/limits.conf重新加载的方式使之生效
通过ulimit比较直接,但只在当前的session有效,limits.conf中可以根据用户和限制项使用户在下次登录中生效.
一、ulimit 命令
1.1ulimit命令查看用户状态
ulimit -a 显示当前的各种用户进程限制。
[angel@linux ~]$ ulimit -a
core file size (blocks, -c) 1024
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 819200
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) unlimited
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
其他参数:
-H 设置硬资源限制.
-S 设置软资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes
-u <程序数目> 用户最多可开启的程序数目
1.2 ulimit命令设置
通过ulimit直接在当前session设置,只当前session生效。
[angel@linux ~]$ ulimit -s
unlimited
[angel@linux ~]$ ulimit -s 819200
[angel@linux ~]$ ulimit -s
819200
二、修改配置文件,永久生效设置
2.1 修改limit设置
示例如下:
[angel@linux ~]# tail -n 20 /etc/security/limits.conf
#<domain> <type> <item> <value>
#
* soft core 1024 #soft 进程数
* hard core 1024 #hard 进程数
* soft nproc unlimited #soft 进程数
* hard nproc unlimited #hard 进程数
* soft memlock unlimited #soft max locked-in-memory address space
* hard memlock unlimited #hard max locked-in-memory address space
* soft stack unlimited #soft max stack size
* hard stack unlimited #hard max stack size
* soft nofile 819200 #soft 文件句柄数
* hard nofile 819200 #hard 文件句柄数
* soft sigpending unlimited #soft pending signals
* hard sigpending unlimited #hard pending signals
* soft msgqueue unlimited #soft POSIX message queue
* hard msgqueue unlimited #hard POSIX message queue
# End of file
[angel@linux ~]$
** 注: * 即所有用户,同时也可以指定具体用户名,如root、angel
“soft” 和 “hard” 的区别
soft xxx : 代表警告的设定,可以超过这个设定值,但是超过后会有警告。
hard xxx : 代表严格的设定,不允许超过这个设定的值。
如:soft 设为2048,hard设为4096 ,则当你使用数在1 ~ 2048 可以随便使用,2048~4096时会出现警告信息,大于4096时,就会报错。
“nproc” 和 "nofile"的区别
nproc : 是操作系统级别对每个用户创建的进程数的限制
nofile : 是每个进程可以打开的文件数的限制
2.2 修改系统的配置
打开 vim /etc/security/limits.d/90-nproc.conf 设置限制数量,第一列表示用户,* 表示所有用户
* soft nproc unlimited
* hard nproc unlimited
* soft nofile unlimited
* hard nofile unlimited
root soft nproc unlimited
root hard nproc unlimited
root soft nofile unlimited
root hard nofile unlimited
soft nproc :单个用户可用的最大进程数量(超过会警告);
hard nproc:单个用户可用的最大进程数量(超过会报错);
soft nofile :可打开的文件描述符的最大数(超过会警告);
hard nofile :可打开的文件描述符的最大数(超过会报错);
重启生效
[angel@linux ~] reboot