linux资源限制配置文件是/etc/security/limits.conf;限制用户进程的数量对于linux系统的稳定性非常重要。 limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量。

/etc/security/limits.conf 配置文件可限制文件打开数,系统进程等资源,在该文件配置中写的最大用户进程数是受/etc/security/limits.d/90-nproc.conf配置上限影响的。一般系统普通用户进程数满了都是修改/etc/security/limits.d/90-nproc.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则是一个真正意义的阀值,超过就会报错

一、所有用户创建的进程数

[root@os~]# ps h -Led -o user | sort | uniq -c | sort -n
1 chrony
1 dbus
2 chenpz
7 polkitd
105 www
156 root

二、系统最大打开文件描述符数

1、查看

[root@os~]# cat /proc/sys/fs/file-max
6815744

2、配置

[root@os~]# cat /etc/sysctl.conf  |grep file-max
fs.file-max = 6815744

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

查看soft limit

[root@os ~]# ulimit -n
65535 

查看hard limit

[root@os ~]# ulimit -Hn
65535
  • 临时设置
通过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,注销后将无法正常登录。

四、查看当前系统使用的打开文件描述符数

[root@os ~]# cat /proc/sys/fs/file-nr
7584 0 6815744

其中第一个数表示当前系统已分配使用的打开文件描述符数,第二个数为分配后已释放的(目前已不再使用),第三个数等于file-max。

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

使用ulimt -n命令进行测试,如果小于系统允许的最大值,设置成功,大于最大值,系统会报错提示。

六、ulimit -a/n/H/S 都有什么含义

ulimit -a 显示当前所有的资源限制 ulimit -H 设置硬件资源限制 ulimit -S 设置软件资源限制 ulimit -n 设置进程最大打开文件描述符数

ulimit -u <程序数目>  用户最多可开启的程序数目

七、使用 ps 命令查看进程启动的精确时间和启动后所流逝的时间

[root@os ~]# ps -eo pid,lstart,etime,cmd | grep nginx
1334 Tue Sep 29 17:45:02 2020 6-22:28:14 nginx: master process /usr/local/openresty/nginx/sbin/nginx -c /etc/nginx/nginx.conf
1335 Tue Sep 29 17:45:02 2020 6-22:28:14 nginx: worker process
1336 Tue Sep 29 17:45:02 2020 6-22:28:14 nginx: worker process
1337 Tue Sep 29 17:45:02 2020 6-22:28:14 nginx: worker process
1338 Tue Sep 29 17:45:02 2020 6-22:28:14 nginx: worker process
1339 Tue Sep 29 17:45:02 2020 6-22:28:14 nginx: cache manager process

总结

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. 学习笔记——SQLite介绍
  2. ftp下载在谷歌与火狐不同
  3. ML-分类与逻辑回归
  4. 从零开始HTML(一 2016/10/17)
  5. 管理批量邮箱 FOXMAIL 和网易闪电邮(PC端)有什么区别? 对比
  6. org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback.....Parameter index out of range (1 &gt; number of parameters, which is 0).;
  7. 一些牛逼的统计SQL
  8. poj 3358 Period of an Infinite Binary Expansion
  9. 【VMware虚拟机】【克隆问题】在VMware 9.0下克隆CentOS6.5虚拟机无法识别eth网卡
  10. 【20】宁以pass-by-reference-to-const替换pass-by-value
  11. HDU 2072(单词数)题解
  12. MIRO做发票校验时实现替代功能的多种方式
  13. 在windows平台使用Apache James搭建邮件服务器以及使用C#向外网发送邮件
  14. iOS开发基础:最新的APP打包上架流程
  15. 查看提交历史(git log)
  16. React state和props使用场景
  17. 阿里Canal安装和代码示例
  18. Numpy 系列(九)- 结构化数组
  19. Django组件-用户认证
  20. 项目文件与 SVN 资源库同步提示错误 Attempted to lock an already-locked dir

热门文章

  1. selenium上手
  2. Mybatis联合查询(一)
  3. 用Python实现十大经典排序算法-插入、选择、快速、冒泡、归并等
  4. 转载:记录一次MySQL两千万数据的大表优化解决过程
  5. 高德地图POI爬取_Python
  6. 理解Spring AOP的实现方式与思想
  7. 使用 usbmon 抓取 usb 总线上的数据
  8. windows下nginx的配置
  9. 月薪20k的java面试题他来了
  10. Ansible剧本介绍及使用演示(3)