linux中etcsecuritylimits.conf配置文件说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

linux中etcsecuritylimits.conf配置⽂件说明查看tomcat打开数
lsof -p $pid|wc -l
linux资源限制配置⽂件是/etc/security/limits.conf;限制⽤户进程的数量对于linux系统的稳定性⾮常重要。

limits.conf⽂件限制着⽤户可以使⽤的最⼤⽂件数,最⼤线程,最⼤内存等资源使⽤量。

* soft nofile 655350 #任何⽤户可以打开的最⼤的⽂件描述符数量,默认1024,这⾥的数值会限制tcp连接
* hard nofile 655350
* soft nproc 655350 #任何⽤户可以打开的最⼤进程数
* hard nproc 650000
@student hard nofile 65535
@student soft nofile 4096
@student hard nproc 50 #学⽣组中的任何⼈不能拥有超过50个进程,并且会在拥有30个进程时发出警告
@student soft nproc 30
hard和soft两个值都代表什么意思呢?
soft是⼀个警告值,⽽hard则是⼀个真正意义的阀值,超过就会报错
⼀、所有⽤户创建的进程数:
$ ps h -Led -o user | sort | uniq -c | sort -n
2 shtermuser
11 zabbix
206 elasticsearch
490 root
⼆、系统最⼤打开⽂件描述符数:
1. 查看
$ cat /proc/sys/fs/file-max
6553600
2. 设置
$ vim /etc/sysctl.conf
fs.file-max = 6553600
三、进程最⼤打开⽂件描述符数
1. 查看
ulimit -n默认查看的是soft limit
$ ulimit -n
170000
查看hard limit
$ ulimit -Hn
170000
2. 设置
临时设置
#通过ulimit -Sn设置最⼤打开⽂件描述符数的soft limit,注意soft limit必须⼩于hard limit
$ ulimit -Sn 160000
#同时设置soft limit和hard limit。

对于⾮root⽤户只能设置⽐原来⼩的hard limit。

$ ulimit -n 180000
永久设置
#root权限下,在/etc/security/limits.conf中添加如下两⾏,表⽰所有⽤户最⼤打开⽂件描述符数的soft limit为102400,hard limit为104800。

重启⽣效
* soft nofile 102400
* hard nofile 104800
注意:设置nofile的hard limit还有⼀点要注意的就是hard limit不能⼤于/proc/sys/fs/nr_open,假如hard limit⼤于nr_open,注销后将⽆法正常登录。

四、查看当前系统使⽤的打开⽂件描述符数
$ cat /proc/sys/fs/file-nr
5664 0 186405
其中第⼀个数表⽰当前系统已分配使⽤的打开⽂件描述符数,第⼆个数为分配后已释放的(⽬前已不再使⽤),第三个数等于file-max。

五、知道了/etc/security/limits.conf中的参数含义之后,那么如何配置nofile,确定nofile的最⼤值呢。

解答:使⽤ulimt -n命令进⾏测试,如果⼩于系统允许的最⼤值,设置成功,⼤于最⼤值,系统会报错提⽰。

$ ulimit -n 1100000
-bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 1048576
$ ulimit -n 1048577
-bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 1048575
$ ulimit -n 1048576
六、ulimit -a/n/H/S 都有什么含义
ulimit -a 显⽰当前所有的资源限制
ulimit -H 设置硬件资源限制
ulimit -S 设置软件资源限制
ulimit -n 设置进程最⼤打开⽂件描述符数
ulimit -u <程序数⽬> ⽤户最多可开启的程序数⽬
总结
a. 所有进程打开的⽂件描述符数不能超过/proc/sys/fs/file-max
b. 单个进程打开的⽂件描述符数不能超过user limit中nofile的soft limit
c. nofile的soft limit不能超过其hard limit
d. nofile的hard limit不能超过/proc/sys/fs/nr_open
参考:
我就写了个⼩脚本来统计⼀下所有进程的⽂件打开数量,从⽽可以得知到底是哪个进程出现问题,再作进⼀步的处理,脚本的具体内容如下1.
#!/bin/bash
2.
3.
# psof.sh
4.
# Author:
5.
# # ####### # # #######
6.
# # # ## # #
7.
# # # # # # #
8.
### ##### # # # #
9.
# # # # # # #
10.
# # # # ## #
11.
# # ####### # # #
12.
# DATE: 2016-10-09
13.
# DESCRIPTION: 计算每个进程的Openfiles
14.
15.
tmpfile=/dev/shm/psof.txt
16.
echo "" > $tmpfile
17.
for pid in $(ps -eo pid | grep -v PID)
18.
do echo $pid":"$(lsof -p $pid|wc -l) >> $tmpfile ;
19.
done
20.
echo "PID : Openfiles"
21.
sort -nrk 2 -t: $tmpfile。

相关文档
最新文档