ulimit的说明

ulimit工具是性能调优的简单工具而且也是linux内置的一个功能,它的目的是用于控制由Shell运行的进程所能使用的系统最大资源。其实在生产环境中部署Linux后通常都会用这个工具去调整一些参数来交付使用,当然这个过程往往都是自动完成的,工具使用很简单,但是它涉及的知识还是比较多的。

ulimit -a    查看所有限制,如果不加-H参数则默认显示软限制。

这里显示的是系统默认设置,我没有做任何调整。

wKiom1h2L5WTr_AhAABsTaUTvCk052.jpg

ulimit用于限制shell启动进程所用的资源,内核文件大小、进程数据块大小、shell进程创建的文件大小、内存锁住大小、最大可用内存大小、最大可用虚拟内存大小、最大文件描述符大小、CPU时间、分配堆栈大小、单个用户的最大线程数量。它支持硬限制和软限制。

上面提到【限制shell】启动进程,其实这也就表明了它的作用范围。临时调整参数的话仅对当前shell有效,关闭则失效,同时不影响其他shell;当然也可以永久生效这需要修改登录时shell读取的文件。

下面说一下参数含义:    

参数含义-H设置硬限制, ulimit -Hn 1024  表示硬限制,限制最大文件描述符为1024-S设置软限制,ulimit -Sn 1024   表示软限制,限制最大文件描述符为1024,软限制不能大于硬限制-a限制当前所有的限制信息,默认为软限制。-c最大的core文件大小,以blocks为单位。块大小取决于你系统分区使用的块为多大。-d
进程占用的最大数据段大小,以bytes为单位-f
进程可以创建的单个文件为多大,以blocks为单位。ulimit -f 100 限制进程最大可以创建100块大小的文件。-l最大可加锁内存大小,以bytes为单位。这个值对普通用户生效,对管理员不起作用。不过有一个知识需要了解,就是为什么要对内存加锁?抛开虚拟地址空间不说,总之进程和数据都会在物理内存中,只要进程和数据当前都是活动的。不过我们也知道,内存管理有换进换出机制,采用最近最少原则,这些数据暂时性的交换到SWAP分区中,也就是虚拟内存中,而在需要的时候在交换进物理内存。内存加锁就是将数据锁定在物理内存中,避免换进换出。这样可以提高效率,对某些应用需要这样设置,比如数据库、或者对安全性要求高的,但大部分不需要。所以这个参数就是设定进程最大可以锁定多少内存。-m进程可用的最大内存数量,以bytes为单位。-n
进程可以打开的最大文件描述符数量-p
管道缓冲区大小,以bytes为单位。-s
线程栈大小,以bytes为单位-t
进程最多可以占用CPU多久,以秒为单位-u
用户最大可用的进程数-v
进程最多可用多少虚拟内存,以bytes为单位



本文出自 “小恶魔的家” 博客,请务必保留此出处http://littledevil.blog.51cto.com/9445436/1891181

赞 (0) 评论 分享 ()