、首先我们先了解一下为什么需要设置ulimit,所以先对Ulimit进行说明ulimit主要是用来限制进程对资源的使用情况的,它支持各种类型的限制,常用的有: 内核文件的大小限制进程数据块的大小限制Shell进程创建文件大小限制可加锁内存大小限制常驻内存集的大小限制打开文件句柄数限制分配堆栈的最大大小限制CPU占用时间限制用户最大可用的进程数限制Shell进程所能使用的最大虚拟内存限制
工具/原料
CENTOS操作系统
XSHELL,PUTTY等SSH登录工具(用户登录操作系统)
方法/步骤
1、首先我们先确认一下自己的操作系统和对应版本本文介绍的是以CENTOS6.7为基础进行说明配置
2、在普通用户模式下,我们可以通过命令先进性查看当前的Ulimit设置。
3、ulimit-a#限制core文件的大小(罕铞泱殳corefilesize):指定为0,将不会产生core揍茏壅混文件。对于产生的core文件,使用gdb–corecorefile.name来观察corefilesize(blocks,-c)0#限制进程使用数据段的大小(datasegsize):会影响程序调用brk(系统调用)和sbrk(库函数)。调用malloc时,如果发现vm不够了就会用brk去内核申请。单位为kbdatasegsize(kbytes,-d)unlimited#进程优先级的限制:这个值只对普通用户起作用,对超级用户不起作用。测试如下nice-n-11ls/tmpschedulingpriority(-e)0#限制进程产生的文件大小(filesize)硬限制控制软限制,软限制来限制用户对资源的使用filesize(blocks,-f)unlimited#针对所有用户,表示可以被挂起/阻塞的最大信号数量pendingsignals(-i)1032188#内存锁定值的限制:只对普通用户起作用,对超级用户不起作用,”CAP_IPC_LOCK”将数据锁定到物理内存可以避免数据的换入/换出,即避免swap#锁定内存的动作由mlock()函数来完成maxlockedmemory(kbytes,-l)64#驻留内存的限制在很多系统里也没有作用.maxmemorysize(kbytes,-m)unlimited#进程打开文件的限制(openfiles)openfiles(-n)1024#不能改变,只能是8*512(bytes),也就是4096个字节.pipesize(512bytes,-p)8#可以创建使用POSIX消息队列的最大值,单位为bytes.(POSIXmessagequeues).如消息队列不够用,会报错:Cannotallocatememory.是一种IPCPOSIXmessagequeues(bytes,-q)819200#限制程序实时优先级的范围,只针对普通用户。real-timepriority(-r)0#限制进程使用堆栈段的大小,会出现堆栈不够用的情况stacksize(kbytes,-s)10240#程序占用CPU的时间,单位是秒.程序占用CPU时间超过这个时间,会被kill掉cputime(seconds,-t)unlimited#限制程序可以fork的进程数,只对普通用户有效maxuserprocesses(-u)1024#限制进程使用虚拟内存的大小virtualmemory(kbytes,-v)unlimited#文件锁的限制只在2.4内核之前有用.filelocks(-x)unlimited
4、ulimit的修改:我们一般可以通过ulim坡纠课柩it命令或编辑/etc/security/limits.conf重新加载鹚兢尖睁的方式使之生效。通过ulimit命令比较直接,但只在当前的session有效。修改limits.conf中可以根据用户和限制项使用户在下次登录中生效。对于limits.conf的设定是通过pam_limits.so的加载生效的,比如/etc/pam.d/sshd,这样通过ssh登录时会加载limit。也可以在/etc/pam.d/login加载中生效,或者在profile中进行设置也可以。
5、解除Linux系统的最大进程数和最大评鲦易纪文件打开数限制:vi/etc/security/limits.conf#添加如下的行惺绅寨瞀*softnproc11000*hardnproc11000*softnofile4100*hardnofile4100说明:*代表针对所有用户,noproc是代表最大进程数,nofile是代表最大文件打开数
6、使用ROOT用户设置普通用户的ulimit值vim/etc/profile增加ulimit-n10240source/etc/profile重新启动就不需要运行这个命令了。修改/etc/security/limits.conf增加*hardnofile10240\\限制打开文件数10240测试,新建普通用户,切换到普通用户使用ulit-a查看是否修改成功。
7、检查和确认ulimit-a-Hulimit-a看到的是软限制,通过ulimit-a-H可以看到硬限制.