美文网首页
Linux之ulimit命令

Linux之ulimit命令

作者: 熊与花 | 来源:发表于2018-07-13 18:12 被阅读0次

遇到的问题

解决方法:

本来以为是个很复杂的问题,网上各种搜索,修改参数什么的,都不行,最后发现我grep的字段压根不在日志里面,晕死。。。。

延伸扩展:ulimit命令

介绍

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

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

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

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

语法
  ulimit(选项)

选项

-a:显示目前资源限制的设定;

-c :设定core文件的最大值,单位为区块;

-d <数据节区大小>:程序数据节区的最大值,单位为KB;

-f <文件大小>:shell所能建立的最大文件,单位为区块;

-H:设定资源的硬性限制,也就是管理员所设下的限制;

-m <内存大小>:指定可使用内存的上限,单位为KB;

-n <文件数目>:指定同一时间最多可开启的文件数;

-p <缓冲区大小>:指定管道缓冲区的大小,单位512字节;

-s <堆叠大小>:指定堆叠的上限,单位为KB;

-S:设定资源的弹性限制;

-t :指定CPU使用时间的上限,单位为秒;

-u <程序数目>:用户最多可开启的程序数目;

-v <虚拟内存大小>:指定可使用的虚拟内存上限,单位为KB。

实例

ps:附一个外文链接PosiDev Blog

相关文章

网友评论

      本文标题:Linux之ulimit命令

      本文链接:https://www.haomeiwen.com/subject/oiojpftx.html