Ulimit - 用户资源控制

在支持它的系统上,对 shell 和它启动的进程,提供对可用资源的控制。选项 -H 和 -S 指定为所给资源设定的硬性和柔性限额。软限制是指在当前系统能够承受的范围内进一步限制用户同时打开的文件数;硬限制则是根据系统硬件资源状况(主要是系统内存)计算出来的系统最多可同时打开的文件数量。如果没有给出 -H 或 -S 选项,将同时设置硬性和柔性限额。limit 的值可以是一个数字,单位是指定资源的单元值,或者是特殊值 hard, soft, 或 unlimited 之一,意思分别是当前硬性限额,当前柔性限额和没有限额。如果忽略了 limit,将打印出当前对资源的柔性限额值, -H 选项打印出当前的硬性限制。当指定多于一个资源时,限额名称和单位将在值之前打印出来。

语法

-H 硬限制

-S 软限制

-a 显示所有限额

-c core文件上限

-d 进程数据段上限

-e scheduling priority上限

-f shell所能创建的文件大小的上限

-i 等待信号上限

-l 锁定内存上限

-m 驻留内存大小的上限

-n 打开文件数的上限

-p 管道大小上限

-q POSIX消息上限

-r

-s 堆栈大小的上限

-t 每秒可占用的CPU时间上限

-u 进程数的上限

-v 虚拟内存的上限

-x 锁定文件上限

配置

  • /etc/security/limits.conf

Linux系统用户级打开文件数的软限制和硬限制

<domain> <type> <item> <value>

<domain> : 需要被限制的用户名,组名前面加@,用通配符*匹配所有用户,root用户需要单独指定

<type> : soft 是软限制。hard 是硬限制,soft 的限制不能比 hard 限制高

<item> :

core - 限制内核文件的大小

date - 最大数据大小

fsize - 最大文件大小

memlock - 最大锁定内存地址空间

nofile - 打开文件的最大数目

rss - 最大持久设置大小

stack - 最大栈大小

cpu - 以分钟为单位的最多 CPU 时间

noproc - 进程的最大数目

as - 地址空间限制

maxlogins - 此用户允许登录的最大数目

示例

设置用户tomcat打开文件的最大数目限额

tomcat soft nofile 10240
tomcat hard nofile 10240