ulimit

ulimit

控制shell程序的资源

补充说明

ulimit命令 用来限制系统用户对shell资源的访问。如果不懂什么意思,下面一段内容可以帮助你理解:

假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时打开了 500 个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受到巨大的挑战。

而实际应用的环境要比这种假设复杂的多,例如在一个嵌入式开发环境中,各方面的资源都是非常紧缺的,对于开启文件描述符的数量,分配堆栈的大 小,CPU 时间,虚拟内存大小,等等,都有非常严格的要求。资源的合理限制和分配,不仅仅是保证系统可用性的必要条件,也与系统上软件运行的性能有着密不可分的联 系。这时,ulimit 可以起到很大的作用,它是一种简单并且有效的实现资源限制的方式。

ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制。

作为临时限制,ulimit 可以作用于通过使用其命令登录的 shell 会话,在会话终止时便结束限制,并不影响于其他 shell 会话。而对于长期的固定限制,ulimit 命令语句又可以被添加到由登录 shell 读取的文件中,作用于特定的 shell 用户。

语法

ulimit(选项)

选项

-a:显示目前资源限制的设定;
-c <core文件上限>:设定core文件的最大值,单位为区块;
-d <数据节区大小>:程序数据节区的最大值,单位为KB;
-e 默认进程优先级, 值越小优先级越高
-f <文件大小>:shell所能建立的最大文件,单位为区块;
-H:设定资源的硬性限制,也就是管理员所设下的限制;
-m <内存大小>:指定可使用内存的上限,单位为KB;
-n <文件数目>:指定同一时间最多可开启的文件数;
-p <缓冲区大小>:指定管道缓冲区的大小,单位512字节;
-s <堆叠大小>:指定堆叠的上限,单位为KB;
-S:设定资源的弹性限制;
-t <CPU时间>:指定CPU使用时间的上限,单位为秒;
-u <程序数目>:用户最多可开启的程序数目;
-v <虚拟内存大小>:指定可使用的虚拟内存上限,单位为KB。

实例

[root@localhost ~]# ulimit -a
core file size          (blocks, -c) 0           #core文件的最大值为100 blocks。
data seg size           (kbytes, -d) unlimited   #进程的数据段可以任意大。
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited   #文件可以任意大。
pending signals                 (-i) 98304       #最多有98304个待处理的信号。
max locked memory       (kbytes, -l) 32          #一个任务锁住的物理内存的最大值为32KB。
max memory size         (kbytes, -m) unlimited   #一个任务的常驻物理内存的最大值。
open files                      (-n) 1024        #一个任务最多可以同时打开1024的文件。
pipe size            (512 bytes, -p) 8           #管道的最大空间为4096字节。
POSIX message queues     (bytes, -q) 819200      #POSIX的消息队列的最大值为819200字节。
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240       #进程的栈的最大值为10240字节。
cpu time               (seconds, -t) unlimited   #进程使用的CPU时间。
max user processes              (-u) 98304       #当前用户同时打开的进程(包括线程)的最大个数为98304。
virtual memory          (kbytes, -v) unlimited   #没有限制进程的最大地址空间。
file locks                      (-x) unlimited   #所能锁住的文件的最大个数没有限制。

若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/ulimit/

(0)
AuroraAurora站点维系者
上一篇 2024年 3月 11日 下午6:34
下一篇 2024年 3月 11日 下午6:35

相关推荐

  • MIME 类型

    MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的标准,用来表示文档、文件或字节流的性质和格式。 MIME 消息能包含文…

    2023年 5月 14日
  • Select

    文章目录Select什么是 select?示例select 的应用默认情况死锁与默认情况随机选取这下我懂了:空 select Select 上一节:第二十三篇 信道下一节:第二十五…

    2023年 12月 5日
  • SQL AND & OR 运算符

    AND & OR 运算符用于基于一个以上的条件对记录进行过滤。 文章目录SQL AND & OR 运算符演示数据库AND 运算符实例实例OR 运算符实例实例结合 A…

    2023年 5月 28日
  • su

    文章目录su补充说明语法选项参数实例 su 用于切换当前用户身份到其他用户身份 补充说明 su命令 用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。 语法…

    入门教程 2024年 3月 11日
  • spell

    文章目录spell补充说明语法参数 spell 对文件进行拼写检查 补充说明 spell命令 对文件进行拼写检查,并把拼写错误的单词输出。 语法 spell(参数) 参数 文件:指…

    入门教程 2024年 3月 5日
  • sftp-server

    文章目录sftp-server补充说明语法 sftp-server sftp协议的服务器端程序 补充说明 sftp-server命令 是一个“sftp”协议的服务器端程序,它使用加…

    入门教程 2024年 3月 4日
  • popd

    文章目录popd概要主要用途选项参数返回值例子注意参考链接 popd 从目录堆栈中删除目录。 概要 popd [-n] [+N | -N] 主要用途 从目录堆栈中删除目录,如果是顶…

    入门教程 2024年 3月 1日
  • init

    文章目录init补充说明语法选项参数实例 init init进程是所有Linux进程的父进程 补充说明 init命令 是Linux下的进程初始化工具,init进程是所有Linux进…

    入门教程 2023年 12月 19日
  • HTTP介绍

    文章目录HTTP/HTTPS 简介HTTP 工作原理HTTP 三点注意事项:HTTPS 作用证书有效证书无效 HTTP/HTTPS 简介 HTTP 协议是 Hyper Text T…

    2023年 5月 14日
  • pgrep

    文章目录pgrep补充说明语法选项参数实例 pgrep 根据用户给出的信息在当前运行进程中查找并列出符合条件的进程ID(PID) 补充说明 pgrep命令 以名称为依据从运行进程队…

    入门教程 2024年 3月 1日

发表回复

登录后才能评论
Translate »