54. ulimit
使用 ulimit 您可以控制可分配给 bash shell 启动的进程的资源量。 语法:
ulimit [-SHacdefilmnpqrstuvx] [limit]
如下所示。 由此输出,您可以看到允许 shell 进程打开的 open files
总数
1024,“最大内存大小”
可用于 shell 创建的进程是“无限制的”,等等。
要查看所有当前限制,请使用ulimit -a
,如下所示。
从这个输出中,您可以看到 shell 创建的进程允许的 "open files"
总数为 1024,shell 创建的进程可用的 "max memory size"
是无限制, 等等…
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31726
max locked memory (kbytes, -l) 8192
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1000000
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
您可以使用特定资源的简短选项来查看该资源。
特定资源的短选项显示在上面的ulimit -a
输出中的 {[< label ( )
>}} 内。 例如,打开文件的短选项是-n
:
$ ulimit -n
1024
$ ulimit -m
unlimited
$ ulimit -i
31726
要更改特定资源的值,请将新值指定为ulimit
命令的参数。 以下示例将 "open files"
的数量从默认的 1024
更改为 2048
。
$ ulimit -n 2048
$ ulimit -n
2048
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31726
max locked memory (kbytes, -l) 8192
max memory size (kbytes, -m) unlimited
open files (-n) 2048
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 1000000
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
使用S
或H
选项分别显示软限制或硬限制。
查看所有资源的软限制:
ulimit -aS
查看所有资源的硬限制:
ulimit -aH