Linux命令详解(11)-ulimit命令

ulimit用于控制shell程序的资源。此为内建命令。

使用help ulimit获得帮助资源。

-S 对当前系统生效的设置值设置(soft类型)

-H 对系统中所能设定的最大值设置(hard类型)

-a 显示目前资源限制的设置。

-b 对socket缓冲区大小设置

-c 创建核心文件最大文件大小

-d 进程数据段最大值

-e 最大调度优先级

-f shell及其子对象写入的文件的最大大小

-i 挂起信号的最大数量

-k 为进程分配的最大队列数

-l 进程可能锁定到内存中的最大大小

-m <内存大小> 指定可使用内存的上限,单位为KB。

-n <文件数目> 指定同一时间最多可开启的文件数。

-p <缓冲区大小> 指定管道缓冲区的大小,单位512字节。

-q POSIX消息队列中最大字节数

-r 最大试试调度优先级

-t <CPU时间> 指定CPU使用时间的上限,单位为秒。

-u <程序数目> 用户最多可开启的程序数目。

-v 虚拟内存大小

-P 未中断最大数

-x 锁文件最大数

-T 最大线程数

例1:查看当前资源限制

从上图可以看出,部分资源是没有限制的。比如:CPU time,virtual memory,file locks。

例2:设置cpu使用时间60秒的限制

如上图,ulimit命令设置了cpu使用时间上线60秒

例3:设置打开文件句柄数不超过512

ulimit -n 512

例4:设置管道缓冲区为256k

ulimit -p 256

例5:设置为无限制(root用户为无限制)

ulimit -u unlimited

例6:设置创建文件大小最大512

ulimit -f 1

上面的命令,设置文件只有一个block,1个block为512字节。所以这文件最大不会超过5002

除了使用ulimit命令来设置资源限制,还可以通过配置文件来实现。

配置文件为:/etc/security/limits.conf

配置文件列说明:

domain : 表示用户或组的名字(比如:root),如果是组名前面加“@”来区别用户名;可以使用通配符“*”,代表所有用户

type : 一般是soft,hard和“-”。soft指的是当前系统生效的设置值;hard表示系统中所能设定的最大值;“-”代表同时设置了soft和hard的值。从前面的定义,可以得出一个结果,那就是soft的限制不能比hard高。

item : 表示需要限定的资源,可选值很多,比如stack,cpu,本别表示最大的堆栈大小,占用的cpu时间,noproc代表的是进程数,nofile代表的是文件打开数。

item列值:

列值 列值含义 对应命令行 core limits the core file size(KB) -c data max data size(KB) -d fsize maximum filesize(KB) -f memlock max locked-inmemory address space(KB) -l nofile max number of open files -n rss max resident set size(KB) -m stack max stack size(KB) -s cpu max CPU time (MIN) -t nproc max number of processes(see note below) -u as address space limit(KB) -v maxsyslogins max number of flogins on the system maxlogins max number of logins for this user priority the priority to run user process with - locks max number of file locks the user can hold -x sigpending max number of ending signals -i msgqueue max memory used by POSIX message queues(bytes) -q nice max nice priority allowed to raise to values::[-20,19] -e rtprio max realtime priority -f

value : 对应设置的值。

配置文件编辑后,需要重新登录一次才生效。

例7:系统默认对文件打开数量的限制是1024,配置文件中修改为65535

* soft nofile 65535

* hard nofile 65535

经验分享 程序员 微信小程序 职场和发展