ulimit 命令详解

简介: ulimit 命令详解

阅读目录

回到顶部

ulimit 的简介及常用参数

ulimit:显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何的超越都导致进程的终止。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

参数 描述

ulimited 不限制用户可以使用的资源,但本设置对可打开的最大文件数(max open files)

和可同时运行的最大进程数(max user processes)无效

-a 列出所有当前资源极限

-b 最大套接字缓冲区大小

-c 设置core文件的最大值.单位:blocks

-d 设置一个进程的数据段的最大值.单位:kbytes

-f Shell 创建文件的文件大小的最大值,单位:blocks

-h 指定设置某个给定资源的硬极限。如果用户拥有 root 用户权限,可以增大硬极限。任何用户均可减少硬极限

-k 可以分配的最大 kqueue 数

-i 待处理信号的最大数量

-l 可以锁住的物理内存的最大值

-m 可以使用的常驻内存的最大值,单位:kbytes

-n 每个进程可以同时打开的最大文件数

-p 设置管道的最大值,单位为block,1block=512bytes

-s 指定堆栈的最大值:单位:kbytes,Java程序需要适当的设置大一点

-S 指定为给定的资源设置软极限。软极限可增大到硬极限的值。如果 -H 和 -S 标志均未指定,极限适用于以上二者

-t 指定每个进程所使用的秒数,单位:seconds

-u 单个用户可用的最大进程数

-v 进程可用的最大虚拟内存量,单位:kbytes

-x 文件锁的最大数量

-T 最大线程数 

回到顶部

l临时生效

1

2

3

4

5

6

7

ulimit -u 10240 # 用户的最大进程数

ulimit -n 4096  #每个进程可打开的文件数

ulimit -d unlimited #数据段长度

ulimit -m unlimited #最大内存大小

ulimit -s unlimited  #堆栈大小

ulimit -t unlimited #CPU 时间

ulimit -v unlimited #虚拟内存

 

回到顶部

永久生效

修改所有 linux 用户的环境变量文件

1

2

3

4

5

6

7

8

vi /etc/profile.d/ulimit.sh # ~/.bashrc

   ulimit -u 10000

   ulimit -n 4096

   ulimit -d unlimited

   ulimit -m unlimited

   ulimit -s unlimited 

   ulimit -t unlimited

   ulimit -v unlimited

修改配置文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

# vi /etc/security/limits.conf

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

 

*               -       core             <value>

*               -       data             <value>

*               -       priority         <value>

*               -       fsize            <value>

*               soft    sigpending       <value> eg:57344

*               hard    sigpending       <value> eg:57444

*               -       memlock          <value>

*               -       nofile           <value> eg:1024

*               -       msgqueue         <value> eg:819200

*               -       locks            <value>

*               soft    core             <value>

*               hard    nofile           <value>

@<group>        hard    nproc            <value>

<user>          soft    nproc            <value>

%<group>        hard    nproc            <value>

<user>          hard    nproc            <value>

@<group>        -       maxlogins        <value>

<user>          hard    cpu              <value>

<user>          soft    cpu              <value>

<user>          hard    locks            <value>

<domain>可以是以下值

1

2

3

4

用户名

组名,带有@group语法

通配符*,用于默认条目

通配符%,也可以与%group语法一起使用,用于maxlogin限制

<type>可以有两个值: 

1

2

soft:用于执行软限制

hard:用于执行硬限制

<item>可以是以下之一

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

core- 限制核心文件大小 (KB)

data- 最大数据大小 (KB)

fsize- 最大文件大小 (KB)

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

nofile- 最大打开文件数

rss- 最大驻留集大小 (KB)

stack- 最大堆栈大小 (KB)

cpu- 最大 CPU 时间 (MIN)

nproc- 最大进程数(见下面的注释)

as- 地址空间限制 (KB)

maxlogins- 此用户的最大登录次数

maxsyslogins- 系统上的最大登录数

priority- 运行用户进程的优先级

locks- 用户可以持有的最大文件锁数

sigpending- 挂起信号的最大数量

msgqueue- POSIX 消息队列使用的最大内存(字节)

nice- 允许提升到值的最大优先级:[-20, 19]

rtprio- 最大实时优先级 

注意事项

1

在 /etc/security/limits.conf 中设置 nproc 在 Red Hat Enterprise Linux 中无效,要在/etc/security/limits.d/90-nproc.conf文件中修改。


相关文章
|
2月前
|
Linux Shell
在Linux中,umask 和 ulimit有什么区别?
在Linux中,umask 和 ulimit有什么区别?
|
5月前
|
安全 Linux
Linux命令(63)之ulimit
Linux命令(63)之ulimit
53 2
|
5月前
|
安全 Linux Shell
Linux - ulimit命令详解与修改不生效
Linux - ulimit命令详解与修改不生效
404 1
|
Shell Linux 开发工具
linux ulimit 调优
概要:linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不够。这就需要修改ulimit和file-max。
4428 0
|
安全 关系型数据库 Shell