五分钟学习Linux资源限制命令—ulimit

十几年前,硬件资源有限,为了保障服务器稳定地运行,使用ulimit命令限制进程对资源的使用。但现在硬件性能已经大大提升,ulimit的默认值让服务器难以发挥最佳性能。例如,高负载的Web服务器、数据库服务器都需要对可使用的文件描述符的最大数量用户最大可用进程数进行调整以发挥最佳性能。

ulimit命令选项及含义

参数名对应选项含义
-a显示当前系统所有的limit资源信息,ulimit -a
core file size-c内核core文件的大小限制,单位为blocks
file size-f进程可以创建文件的最大值,单位为blocks
data seg size-d进程最大数据段的大小,单位为KB
max memory size-m进程可使用内存大小,单位为KB
open files-n用户可使用的文件描述符的最大数量
stack size-s最大堆栈大小,单位为KB
pipe size-p管道缓冲区大小,单位为KB
max user processes-u用户最大可用进程数
virtual memory-v进程最大可用虚拟内存,单位为KB
cpu time-t最大CPU占用时间,单位为秒
max locked memory-l最大加锁内存大小,单位为KB

ulimit的多种使用方式

  1. 将命令加入用户环境变量中

    修改用户主目录下的.bashrc.bash_profile ,在其中加入ulimit -u 7154来限制用户最大可用进程数。

  2. 将命令加入启动应用程序的bash脚本中

    如在Tomcat启动脚本startup.sh中加入ulimit -n 65535来限制用户可以使用的文件描述符的最大数量。

  3. 在终端命令行执行ulimit命令

    直接在终端命令行执行ulimit进行资源限制仅在当前终端生效,不影响其他终端,且在关闭终端后,设置失效。

  4. 统一在/etc/security/limits.conf文件中配置,使用规则如下:

#格式:<domain> <type> <item> <value>#domain:表示用户或组的名字,还可以使用*作为通配符,表示所有用户。#type:表示限制类型,soft表示软资源限制,设置后可以超过软资源限制,但是不能超过硬资源限制;hard表示硬资源限制,一旦设置不能超过限制。#item:表示需要限定的资源名称,常用的有nofile(用户可用文件描述符最大数量)、CPU(占用CPU时间)、statck(最大堆栈大小)、noproc(用户最大可用进程数)等。#value:表示限制资源的具体值。#举例: * soft noproc 65535 * hard noproc 65535 * soft nofile 65535 * hard nofile 65535

ulimit使用注意事项

修改完配置文件后要退出SSH终端,重新登录会话才能生效。

除了limits.conf还有一个/etc/security/limits.d目录,系统会默认优先读取并使用这个目录下的配置文件,再读取limits.conf的配置,如果有重复的配置,以/etc/security/limits.d目录下的配置文件为准。

正在运行的应用不会读取新添加的ulimit资源限制,在应用重启后资源限制才生效。

ulimit修改可使用文件描述符最大数量不能超过1048576(1024*1024),如果要提高整个数量需要修改内核参数/etc/sys/fs/nr_open

limits.conf文件中的配置对systemctl启动的服务是不生效的。

对于systemd管理的服务,全局配置需要修改/etc/systemd/system.conf/etc/systemd/user.conf:

 #在配置文件中添加如下内容,修改配置后,重启系统生效 DefaultLimitNOFILE=655360 DefaultLimitNPROC=655360

如果只修改单个服务的资源限制,以Nginx为例,需编辑/usr/lib/systemd/system/nginx.service

#找到[Service段],添加如下配置[Service]LimitNOFILE=655360LimitNPROC=655360#运行如下命令,配置立即生效systemctl daemon-reloadsystemctl restart nginx.service

欢迎大家关注我,更多Linux干货等着你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值