您当前的位置: 首页 >  linux

liaowenxiong

暂无认证

  • 1浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Linux 命令之 ulimit 命令-控制shell程序的资源

liaowenxiong 发布时间:2021-03-16 18:16:52 ,浏览量:1

文章目录
  • 介绍
  • 常用选项
  • 参考示例

介绍

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

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

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

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

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

常用选项 选项说明-a显示目前资源限制的设定-c 设定core文件的最大值,单位为区块-d 程序数据节区的最大值,单位为KB-f shell所能建立的最大文件,单位为区块-H设定资源的硬性限制,也就是管理员所设下的限制-m 指定可使用内存的上限,单位为KB-n 指定同一时间最多可开启的文件数-p 指定管道缓冲区的大小,单位512字节-s 指定堆叠的上限,单位为KB-S设定资源的弹性限制-t 指定CPU使用时间的上限,单位为秒-u 用户最多可开启的程序数目-v 指定可使用的虚拟内存上限,单位为KB 参考示例

示例 1,显示系统资源的设置:

[root@linuxcool ~]# ulimit -a 

示例 2,设置单一用户程序数目上限 :

[root@linuxcool ~]# ulimit -u 500

示例 3,将每个进程可以打开的文件数目加大到 4096 :

[root@linuxcool ~]# ulimit -n 4096 

示例 4,指定可使用的虚拟内存上限为12800KB :

[root@linuxcool ~]# ulimit -v 12800 

示例 5,指定CPU使用时间的上限为2s :

[root@linuxcool ~]# ulimit -t 2
关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0520s