当前位置: 首页 > Linux

Linux下修改打开文件数限制的3种方法

时间:2023-04-06 04:41:29 Linux

当一个文件被打开访问时,操作系统会临时分配一个编号,称为文件句柄。主存中专门为文件句柄保留了一块区域,这块区域的大小决定了一次可以打开多少个文件。Linux上的进程受到许多限制,这些限制也阻止它们正确执行,并且每个进程都有几个与之相关的限制。shell限制一个程序可以同时打开的文件句柄数。为什么系统环境Centos7限制打开文件数?由于操作系统需要内存来管理每个文件,因此可以打开的文件数量可能会有限制。由于该程序还可以关闭文件处理程序,因此它可以创建任意大小的文件,直到所有可用磁盘空间都被填满。在这种情况下,安全性的一个方面是通过施加限制来防止资源耗尽。可以看到Linux系统最大打开文件描述符数,如下:[root@localhost~]#cat/proc/sys/fs/file-max180965这个值表示用户每次登录会话可以打开的文件数号,您会注意到结果可能因系统而异。由于某些原因,可能需要增加限制集的值。这就是为什么Linux系统提供了通过更改每个进程和每个系统的最大打开文件数来修改这些限制(增加或减少)的可能性。方法一:使用ulimit命令ulimit命令可以用来增加shell中打开文件的数量。此命令是系统内置的,因此它只影响bash和从它启动的程序。ulimit语法如下:ulimit[option][limitvalue]以下选项确定限制的内容:-a显示所有当前限制的报告-f(文件限制)限制shell可以创建的文件的大小-n限制打开的文件描述符数量。-H和-S这些分别设置为硬限制和软限制。硬限制可能不会相应增加,但软限制可能会增加。如果没有给出选项,ulimit将同时设置硬限制和软限制。要查看当前打开文件的软限制,可以使用以下命令:[root@localhost~]#ulimit-a|grepopenopenfiles(-n)1024或[root@localhost~]#ulimit-n1024如果你需要查看硬限制,适应以下命令:[root@localhost~]#ulimit-Hn4096修改下面打开文件数:[root@localhost~]#ulimit-n2048然后查看:[root@localhost~]#ulimit-Hn2048[root@localhost~]#ulimit-Sn2048Linux修改打开文件数限制的三种方法Linux修改打开文件数限制的三种方法发现当设置ulimit值,如果未指定-H或-S,则两个限制将被设置为相同的值。现在的问题是,如果您注销或重新启动计算机,该值将被重置。请记住,要使其生效,需要编辑用户的.bashrc或.bash_profile配置文件,在文件末尾添加ulimit命令行即可使参数生效。[root@localhost~]#echo"ulimit-n2048">>~/.bashrcLinux修改打开文件数限制的三种方法Linux修改打开文件数限制的三种方法方法二:使用PAM模块此类限制最好通过名为pam_limits的PAM模块实现。它需要通过编辑/etc/security/limits.conf文件进行配置。该文件包含四个基本字段:域:描述限制适用于哪些实体。可以是用户、组(在组名前加@表示组)或者匹配所有用户,使用(*)通配符。通配符不适用于root用户。type:这意味着限制是硬限制还是软限制?硬限制是由系统管理员添加的,在任何情况下都不能超过,而软限制可以由用户暂时超过。您还可以使用破折号-来表示极限是硬的还是软的。请注意,软限制可以增加到硬限制的值类型:它指定受限条目的类型。可以是core(限制核心文件大小(KB))、data(最大数据大小(KB))、fsize(最大文件大小(KB))、nofile(最大打开文件描述符数)、nproc(最大进程数)等更多类型可以使用manlimits.conf查看。type:这里可以填写申请限制的值。可以对照下面的例子来理解。[root@localhost~]#tail-12/etc/security/limits.conf*softcore0*hardrss10000@studenthardnproc20@facultyhardnproc20@facultyhardnproc50ftphardnproc0@student-maxlogins4Endoffile在Linux中更改打开文件数限制的3种方法在Linux中更改打开文件数限制的3种方法要编辑所有用户的最大打开文件数,请在末尾添加以下行file:[root@localhost~]#vim/etc/security/limits.confhardnofile20000softnofile15000linux修改文件打开数限制的3种方法修改文件打开数限制的3种方法后在Linux下,需要编辑文件/etc/pam.d/login配置文件,在末尾添加以下内容:[root@localhost~]#vim/etc/pam.d/loginsessionrequiredpam_limits.so3Linux修改打开文件数限制的方法Linux修改打开文件数限制3种保存文件的方法。然后注销,或者重启系统。可以看到软限制和硬限制的值修改成功:[root@localhost~]#ulimit-Sn15000[root@localhost~]#ulimit-Hn20000方法三查看文件最大打开数系统中的描述符:[root@localhost~]#cat/proc/sys/fs/file-max180965暂时设置这个值:[root@localhost~]#echo"1000000">/proc/sys/fs/file-max修改linux打开文件数限制3种方式修改linux打开文件数限制3种方式永久设置,需要在/etc/sysctl.conf中设置,并使其生效:[root@localhost~]#echo"fs.file-max=1000000">>/etc/sysctl.conf[root@localhost~]#sysctl-pfs.file-max=1000000Summary全部打开的文件描述符数进程不能超过/proc/sys/fs/file-max。单个进程打开的文件描述符数不能超过用户限制中nofile的软限制。nofile的软限制不能超过它的硬限制。