ulimit命令详解

ulimit命令用于显示和设置shell会话对用户进程的资源限制。以下是ulimit命令的详细解释、每个参数的说明以及相应的示例。

语法

ulimit [-aHS] [-c <core文件上限>] [-d <数据节区大小>] [-f <文件大小>] [-m <内存大小>] [-n <文件数目>] [-p <缓冲区大小>] [-s <堆栈大小>] [-t <CPU时间>] [-u <程序数目>] [-v <虚拟内存大小>]

参数说明与示例

  • -a:显示当前资源限制的设置。

    ulimit -a

    示例:查看所有当前资源限制

    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 1024
    max locked memory       (kbytes, -l) 32
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 1024
    pipe size            (512 bytes, -p) 8
    POSIX message queues   (bytes, -q) 819200
    stack size              (kbytes, -s) 10240
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 4096
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
  • -c <core文件上限>:设置core文件的最大值,单位为块。

    ulimit -c 100

    示例:设置core文件大小限制为100块

    ulimit -c 100
  • -d <数据节区大小>:程序数据节区的最大值,单位为KB。

    ulimit -d 200000

    示例:设置数据节区大小为200000KB

    ulimit -d 200000
  • -f <文件大小>:shell能创建的最大文件,单位为块。

    ulimit -f 50000

    示例:设置文件大小限制为50000块

    ulimit -f 50000
  • -H:设置资源的硬性限制,管理员所设下的限制。

    ulimit -H -n 4096

    示例:设置硬性限制,最大打开文件数为4096

    ulimit -H -n 4096
  • -m <内存大小>:指定可使用内存的上限,单位为KB。

    ulimit -m 500000

    示例:设置内存使用上限为500000KB

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

    ulimit -n 2048

    示例:设置最大打开文件数为2048

    ulimit -n 2048
  • -p <缓冲区大小>:指定管道缓冲区的大小,单位为512字节。

    ulimit -p 16

    示例:设置管道缓冲区大小为16个512字节

    ulimit -p 16
  • -s <堆栈大小>:指定堆栈的上限,单位为KB。

    ulimit -s 8192

    示例:设置堆栈大小为8192KB

    ulimit -s 8192
  • -S:设置资源的弹性限制。

    ulimit -S -n 1024

    示例:设置弹性限制,最大打开文件数为1024

    ulimit -S -n 1024
  • -t <CPU时间>:指定CPU使用时间的上限,单位为秒。

    ulimit -t 120

    示例:设置CPU时间限制为120秒

    ulimit -t 120
  • -u <程序数目>:用户最多可开启的程序数目。

    ulimit -u 256

    示例:设置最大进程数为256

    ulimit -u 256
  • -v <虚拟内存大小>:指定可使用的虚拟内存上限,单位为KB。

    ulimit -v 1000000

    示例:设置虚拟内存上限为1000000KB

    ulimit -v 1000000

实例演示

查看当前资源限制

使用ulimit -a命令可以查看当前所有资源限制的设置:

[root@localhost ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 1024
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues   (bytes, -q) 819200
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

设置单一用户程序数目上限

使用ulimit -u选项可以设置单一用户可开启的最大进程数目:

[root@localhost ~]# ulimit -u 500
[root@localhost ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 1024
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues   (bytes, -q) 819200
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 500
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

通过上述内容,详细解释了ulimit命令的各个参数及其示例,帮助用户理解和使用该命令进行资源限制配置。

本文由mdnice多平台发布


逼格高的汤圆
7 声望2 粉丝