1.概念
linux资源限制配置文件是/etc/security/limits.conf;限制用户进程的数量对于linux系统的稳定性非常重要。 limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量。
2.file-max是内核可分配的最大文件数,nr_open是单个进程可分配的最大文件数
[root@server2 limits.d]# cat /proc/sys/fs/nr_open
1048576
[root@server2 limits.d]# cat /proc/sys/fs/file-max
6553600
file-max是所有时程最大的文件数
nr_open是单个进程可分配的最大文件数
ulimit其实就是对单一程序的限制,进程级别的
3./etc/security/limits.conf
/etc/security/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则是一个真正意义的阀值,超过就会报错
4.所有用户创建的进程数
ps h -Led -o user | sort | uniq -c | sort -n
5.系统最大打开文件描述符数
1.查看
[root@server2 limits.d]# cat /proc/sys/fs/file-max
6553600
2.配置
[root@server2]# vi /etc/sysctl.conf
fs.file-max = 6553600
6.单个进程最大打开文件描述符数
1.ulimit -n默认查看的是soft limit
[root@server2 limits.d]# ulimit -n
1024
2.查看hard limit
[root@server2 limits.d]# ulimit -Hn
4096
3.临时设置
#同时设置soft limit和hard limit。对于非root用户只能设置比原来小的hard limit。
$ ulimit -n 180000
4.永久设置
修改完重新登录用户即可,使用limit -a即可查看
#root权限下,在/etc/security/limits.conf中添加如下两行,表示所有用户最大打开文件描述符数的soft和hard句柄数
* soft nofile 102400
* hard nofile 104800
注意:设置nofile的hard limit还有一点要注意的就是hard limit不能大于/proc/sys/fs/nr_open,假如hard limit大于nr_open,注销后将无法正常登录。
7.查看当前系统使用的打开文件描述符数
[root@server2 fs]# cat /proc/sys/fs/file-nr
36240 0 6553600
其中第一个数表示当前系统已分配使用的打开文件描述符数,第二个数为分配后已释放的(目前已不再使用),第三个数等于file-max。
8.ulimit -a/n/H/S 都有什么含义
ulimit -a 显示当前所有的资源限制
ulimit -H 设置硬件资源限制
ulimit -S 设置软件资源限制
ulimit -n 设置进程最大打开文件描述符数