使用场景:生产环境(比如Oracle、ELK、文件服务器等)有的时候可能因为系统默认进程数、资源限制、会话数等不足,需要调整limit值。这里有过经验的我给大家一些建议:
1、尽量别重启(临时调整,并修改永久生效)
1.1)生产服务器尽力不要乱重启,风险不小。
2、重启需要考虑两个问题
2.1)业务是否正常运行?
2.2)是否备份数据?
2.3)数据是否可用?
一、临时生效:
ulimit -HSn 65536(默认1024)
参数详解:
#ulimit用于shell启动进程所占用的资源。
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.可以使用该命令查看进程占用资源的情况。
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes 5
二、永久生效:(转载请保留renzhiyuan.blog.51cto.com)
vim/etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 * soft noproc 10240 * hard noproc 10240
三、语法参数:
<domain> <type> <item> <value>
* 代表针对所有用户
soft hard 软硬
noproc 是代表最大进程数
nofile 是代表最大文件打开数
四、用户验证选项还要修改pam认证模块
#附加
session required pam_limits.so
注意:有人指出32位和64位区别,可搜索服务器 65536词条详解原理,这里不做描述了,64位系统是参考邮储总行配置。
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/tech/safety/219775.html