千家信息网

Linux中3种修改打开文件数量限制的方法分别是什么

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章给大家介绍Linux中3种修改打开文件数量限制的方法分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当文件被打开访问时,操作系统临时分配一个名为文件句柄的数字。主
千家信息网最后更新 2025年01月31日Linux中3种修改打开文件数量限制的方法分别是什么

这篇文章给大家介绍Linux中3种修改打开文件数量限制的方法分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

当文件被打开访问时,操作系统临时分配一个名为文件句柄的数字。主内存的一个特殊区域是为文件句柄预留的,这个区域的大小决定了一次可以打开多少个文件。Linux上的进程受到许多限制,这些限制也阻碍它们正确地执行,而且每个进程都有几个与之相关的限制。shell限制程序可以同时打开的文件句柄的数量。

系统环境

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 openopen files                      (-n) 1024或者[root@localhost ~]# ulimit -n1024

如果需要查看硬限制,适应下面命令:

[root@localhost ~]# ulimit -Hn4096

下面修改打开文件的数量:

[root@localhost ~]# ulimit -n 2048

然后来查看一下:

[root@localhost ~]# ulimit -Hn2048[root@localhost ~]# ulimit -Sn2048


发现,设置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#@student        hard    nproc           20#@faculty        soft    nproc           20#@faculty        hard    nproc           50#ftp             hard    nproc           0#@student        -       maxlogins       4# End of file


要编辑所有用户打开文件的最大数量,可以在文件末尾添加以下行:

[root@localhost ~]# vim /etc/security/limits.conf * hard nofile 20000* soft nofile 15000


之后,需要编辑文件/etc/pam.d/login配置文件,在最后添加以下一条内容:

[root@localhost ~]# vim /etc/pam.d/login session    required pam_limits.so


保存文件。然后退出登录,或者重启系统。可以看到软限制和硬限制的值都修改成功了:

[root@localhost ~]# ulimit -Sn15000[root@localhost ~]# ulimit -Hn20000

方法三

查看系统最大打开文件描述符数量:

[root@localhost ~]# cat /proc/sys/fs/file-max 180965

临时设置该值:

[root@localhost ~]# echo "1000000" > /proc/sys/fs/file-max


永久性设置,需要在/etc/sysctl.conf中设置,并让它生效:

[root@localhost ~]# echo "fs.file-max = 1000000" >> /etc/sysctl.conf [root@localhost ~]# sysctl -pfs.file-max = 1000000

关于Linux中3种修改打开文件数量限制的方法分别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

限制 文件 系统 数量 最大 命令 方法 大小 用户 程序 进程 件数 内容 句柄 更多 类型 登录 配置 操作系统 内存 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发每个月能赚多少钱 2018网络安全洞察 未能找到制定主机名服务器 淄川服装管理软件开发公司 mc服务器 自动重启 nat如何增强网络安全性 软件开发和单片机开发哪个工资高 手机上搭建私有即时通讯服务器 软件开发java面试题目 惠普380服务器哪里实惠 网页登录云服务器指定软件 数据库同类相加 建立空数据库和模板数据库 软件开发行业寻找客户 快人一步网络技术原创文章 现在网络安全审查 php 服务器地址 数据库中把张三的成绩改成 ips网络安全公司排名 战地五服务器管理员 电脑系统用什么软件开发的 中国知网期刊文献数据库 广东悦购互联网科技有限公司 springboot配置数据库 科学健康上网 警惕网络安全 浙江大数据软件开发要多少钱 西宁软件开发要多少钱 脏小豆骗赞服务器表单答案 我的世界带枪的服务器 控制多台服务器的管理工具
0