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文件中修改。


相关文章
|
存储 安全 Unix
/var/log/messages说明
【4月更文挑战第5天】`/var/log/messages`是类Unix系统(包括Linux)的日志文件,存储系统启动、关闭、内核消息、服务状态和服务错误等信息。内容可能因配置和日志系统(如syslog、rsyslog、journald)不同而变化。现代Linux可能使用`journalctl`等工具访问journald日志,提供更强大管理功能。
2042 1
/var/log/messages说明
|
3月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
500 2
|
Linux
linux xshell telnet 进去后如何退出
【8月更文挑战第27天】Telnet协议支持用户远程登录并操控另一台计算机。在Linux系统中结束Telnet会话可采用多种方式:直接输入"exit";利用快捷键Ctrl + ]后跟"quit";同样可通过Telnet命令结合快捷键"Ctrl + ]q"实现;此外,图形界面下直接关闭窗口也是一个简便的选择。用户可根据个人习惯及客户端类型选取合适的方法退出会话。
1418 4
|
安全 Linux Shell
linux查看/修改各种资源限制ulimit
在Linux资源管理中,适当的使用 `ulimit`,结合系统配置文件的修改,可以更好地控制和优化系统资源,提高系统的稳定性和效率。对于系统管理员而言,精通这些知识是十分必要的,可以有效地防止因资源滥用导致的各种问题。
904 5
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
2165 5
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
安全 Linux
Linux命令(63)之ulimit
Linux命令(63)之ulimit
258 2
|
Docker 容器
docker:记录如何在x86架构上构造和使用arm架构的镜像
为了实现国产化适配,需将原x86平台上的Docker镜像转换为适用于ARM平台的镜像。本文介绍了如何配置Docker buildx环境,包括检查Docker版本、安装buildx插件、启用实验性功能及构建多平台镜像的具体步骤。通过这些操作,可以在x86平台上成功构建并运行ARM64镜像,实现跨平台的应用部署。
8619 2
|
消息中间件 Kafka 测试技术
Kafka常用命令大全及kafka-console-consumer.sh及参数说明
该文章汇总了Kafka常用命令,包括集群管理、Topic操作、生产者与消费者的命令行工具使用方法等,适用于Kafka的日常运维和开发需求。
3941 3
|
存储 SQL NoSQL
mybatis-plus小技能: 分表策略(按年分表和按月分表)
业务场景: 日志、交易流水表或者其他数据量大的表,通过日期进行了水平分表,需要通过日期参数,动态的查询数据。 实现思路:利用MybatisPlus的动态表名插件DynamicTableNameInnerInterceptor ,实现Sql执行时,动态的修改表名。
8804 3
mybatis-plus小技能: 分表策略(按年分表和按月分表)