Linux修改文件句柄数方式及vm.max_map_count、stack size的大小
作者:运维@小兵
修改/etc/security/limits.conf文件可以调整Linux系统的文件句柄数、进程数等资源限制,需注意的是,对该文件的更改需要重新登录系统才能生效,如需临时修改,可以使用命令直接设置;永久修改则需编辑配置文件,设置nofile的最大值不应超过1048576
注意:修改limits.conf文件需重新登录才能生效
一、修改文件句柄数
1.1.查看当前大小
ulimit -a
1.2.临时修改
ulimit -n 4096
1.3.永久修改
vim /etc/security/limits.conf
* soft nofile 65536 * hard nofile 65536
重新登录后生效
PS:nofile可以设置的最大值为 1048576(2**20),设置的值大于该数,就会导致不能登录。
二、修改max user processes进程数
2.1.临时修改
ulimit -u 65536
2.2.永久修改
vim /etc/security/limits.conf
* soft nproc 65536 * hard nproc 65536
三、调整vm.max_map_count的大小
max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量
报错“max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]”
3.1.查看当前值
sysctl -a|grep vm.max_map_count
3.2.临时修改
sysctl -w vm.max_map_count=262144
3.3.永久修改
vim /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p
四、调整stack size的大小
查看:ulimit -a,默认是8192,即8M
临时修改
ulimit -s 1024
永久修改
vi /etc/security/limits.conf
* soft stack 1024 * hard stack 1024
五、设置系统所有进程一共可以打开的文件数量
如果安装第一、第二点操作后还是提示文件数量不够,需要修改系统一共可以打开的文件数量
修改/etc/sysctl.conf, 加入
fs.file-max = 6553600
sysctl -p cat /proc/sys/fs/file-max #查看是否生效
六、关于/etc/security/limits.conf的介绍
参考文章:
/etc/security/limits.conf 详解与配置
/etc/security/limits.d/的优先级高于/etc/security/limits.conf
用户A如果在/etc/security/limits.conf有配置,当/etc/security/limits.d子目录下配置文件也有用户A的配置时,那么A中某些配置会被覆盖。最终取值是 /etc/security/limits.d 下的配置文件的值
soft,hard和-
- soft指的是当前系统生效的设置值,软限制也可以理解为警告值。
- hard表明系统中所能设定的最大值。soft的限制不能比hard限制高
- -表名同时设置了soft和hard的值。
soft memlock unlimited
表示没有软限制
示例
* - nproc 655360 * - nofile 655360
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。