千家信息网

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

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,在Linux中修改打开文件数量限制的3种方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。当文件被打开访问时,操作系统临时分配
千家信息网最后更新 2025年01月21日在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安全错误 数据库的锁怎样保障安全 云计算跟网络安全属于哪个板块 铁路数据库的特点 统计专业与网络安全专业 数据库查询只显示列名 学软件开发有关于数学的吗 找软件开发公司做个软件要多少钱 服务器莫名其妙被重置了怎么办 人渣sucm官服pve服务器 湖南省超级服务器云主机 软件开发工作经验描述 软件开发甲方合同模板 定南软件开发技术 网络安全审查美股 网络企业的网络安全系统 db2数据库数据导出 大学计算机网络技术考试试题 怎么知道数据库的运行编码 软件开发司法解释 奇迹 单机版 连接服务器 网络安全攻防演练预案 优秀网络安全宣传标语 网络安全软件指的是什么 比较权威的论文数据库 泸州网络技术哪家好 微信小程序数据库搭建要用什么软件 ug刀库和加工数据库创建 打印机服务器如何设置ip 怎么还原服务器安全狗的设置 网易云音乐怎么清除数据库 java输出数据库表信息
0