先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
系统环境
Centos7
为什么要限制打开文件的数量?
因为操作系统需要内存来管理每个文件,所以可以打开的文件数可能会受到限制。由于程序也可以关闭文件处理程序,它可以创建任意大小的文件,直到所有可用磁盘空间都已满为止。在这种情况下,安全性的一个方面是通过施加限制来防止资源耗尽。
可以看到Linux系统中打开的文件描述符的最大数量,如下所示:
[root@localhost ~]# cat /proc/sys/fs/file-max
180965
该值显示用户每次登录会话可以打开的文件数,你会注意到,结果可能会因系统而异。出于某些原因,可能需要增加限制集的值。这就是为什么Linux系统提供了修改这些限制的可能性(增加或减少),方法是更改每个进程和每个系统打开文件数的最大值。
法一:使用ulimit命令
ulimit命令可用来增加在shell中打开文件的数量。这个命令是系统内置命令,因此它只影响bash和从它启动的程序。ulimit语法如下:
ulimit [选项] [限制数值]
下面选项决定了什么是有限的:
- -a 显示当前所有限制的报告
- -f (文件限制)限制shell能创建文件的大小
- -n 限制打开的文件描述符的数量。
- -H和-S 它们分别被设置为硬限制和软限制。硬限制可能不会随之增加,但软限制可能会增加。如果没有提供任何选项,ulimit将同时设置硬限制和软限制。
查看当前打开文件的软限制,可以使用下面命令:
[root@localhost ~]# ulimit -a |grep open
open files (-n) 1024
或者
[root@localhost ~]# ulimit -n
1024
如果需要查看硬限制,适应下面命令:
[root@localhost ~]# ulimit -Hn
4096
下面修改打开文件的数量:
[root@localhost ~]# ulimit -n 2048
然后来查看一下:
[root@localhost ~]# ulimit -Hn
2048
[root@localhost ~]# ulimit -Sn
2048
发现,设置ulimit 值的时候,没有指定-H或者-S,两个限制都会设定相同的值。
现在的问题是,如果退出登录或者重新启动计算机,该值将被重置。请记住,要使生效,需要编辑用户的.bashrc或者.bash_profile配置文件,通过将ulimit命令行添加到文件的末尾,可以使参数生效。
[root@localhost ~]# echo "ulimit -n 2048" >> ~/.bashrc
方法二:使用PAM模块
最好通过名为pam_limits的PAM模块实现这种限制。需要通过编辑/etc/security/limits.conf文件来配置它。这个文件包含四个基本字段:
domain:描述了在哪些实体中应用限制。它可以是user、group(组名前面加@表示组)或匹配所有用户,使用(*)通配符。通配符不适应与root用户。
type:这里表示限制为硬限制还是软限制?硬限制是由系统管理员添加的,在任何情况下都不能超过,而用户可以临时超过软限制。还可以使用破折号-来表示一个限制是硬的和软的。请注意,软限制可以增加到硬限制的值
type:它指定被限制条目的类型。可以是core(限制核心文件大小(KB)),data(最大数据大小(KB)),fsize(最大文件大小(KB)),nofile(打开的文件描述符的最大数目),nproc(最大进程数),等类型。更多类型可以使用man limits.conf查看。
type: 这里使填写应用限制的数值。
下面实例可以对照了解一下。
[root@localhost ~]# tail -12 /etc/security/limits.conf
#
#
#\* soft core 0
#\* hard rss 10000
**先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里**
**深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/7d82b93cf525df8d3c165b12ec0c7a41.png)
![img](https://img-blog.csdnimg.cn/img_convert/94316ba99d38d786fb47d659cdcceeb9.png)
![img](https://img-blog.csdnimg.cn/img_convert/6f09f8601bbd7257d2c9cad419fa0c61.png)
![img](https://img-blog.csdnimg.cn/img_convert/27aa68a6b56d9b33e51e66b5ca11dc06.png)
![img](https://img-blog.csdnimg.cn/img_convert/4485bed08195baf31c729e5687e9a610.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**