Linux中limit参数设定一般可以通过ulimit命令或编辑/etc/security/limits.conf重新加载的方式使之生效
通过ulimit比较直接,但只在当前的session有效,limits.conf中可以根据用户和限制项使用户在下次登录中生效.
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 <程序数目> 用户最多可开启的程序数目
通过ulimit直接在当前session设置,只当前session生效。
[angel@linux ~]$ ulimit -s unlimited [angel@linux ~]$ ulimit -s 819200 [angel@linux ~]$ ulimit -s 819200
示例如下:
[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 : 是每个进程可以打开的文件数的限制
打开 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