ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux中/etc/security/limits.conf配置文件说明

2020-03-09 17:02:02  阅读:606  来源: 互联网

标签:文件 配置文件 limits ulimit hard nofile etc limit soft


linux资源限制配置文件是/etc/security/limits.conf;限制用户进程的数量对于linux系统的稳定性非常重要。

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

limits.conf的格式如下:

username|@groupname type resource limit

username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。

type:

soft,hard 和 -

soft 指的是当前系统生效的设置值。

hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。

- 表明同时设置了 soft 和 hard 的值。

 

resource:

core - 限制内核文件的大小

date - 最大数据大小

fsize - 最大文件大小

memlock - 最大锁定内存地址空间

nofile - 打开文件的最大数目

rss - 最大持久设置大小

stack - 最大栈大小

cpu - 以分钟为单位的最多 CPU 时间

noproc - 进程的最大数目

as - 地址空间限制

maxlogins - 此用户允许登录的最大数目


要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:
  session required /lib/security/pam_limits.so

* 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
  1. 设置
$ vim /etc/sysctl.conf
fs.file-max = 6553600

三、进程最大打开文件描述符数

  1. 查看 ulimit -n默认查看的是soft limit
$ ulimit -n
170000
  • 查看hard limit
$ ulimit -Hn
170000
  1. 设置
  • 临时设置
#通过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

标签:文件,配置文件,limits,ulimit,hard,nofile,etc,limit,soft
来源: https://blog.csdn.net/qq_39399966/article/details/104755522

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有