上一篇 下一篇 分享链接 返回 返回顶部

如何修改Linux服务器中的打开文件限制

发布人:Minchunlin 发布时间:2021-01-27 11:27 阅读量:1040

在Linux系统服务器中,凡是消耗资源的事情,系统都会定义一些限制。例如,对某个命令可以传递多少个参数,同时运行多少个线程等都有限制。

同样,打开文件的数量也有限制。你可能知道,一个打开的文件会被其他一些程序主动使用,因此会消耗内存。

你可以通过 "ulimit "命令查看和修改打开文件的限制。

现在,有两种类型的限制被定义。硬限制和软限制。

打开文件的硬限制是一个静态设置的值,只有Linux服务器系统的 "root "用户才能改变。

软限制是可以由进程动态改变的,即在运行时,如果进程需要的打开文件数量超过了软限制允许的数量,就可以改变软限制。

不用说,软限制是可能导致安全问题的东西。

检查Linux中的打开文件限制

要查看或列出文件的硬限制,请运行。

$ ulimit -Hn

同样,对于查看软限制,运行。

$ ulimit -Sn

这里的'S'和'H'分别代表软限制和硬限制,而'n'表示打开的文件数量。

更改Linux中的打开文件限制

现在让我们尝试修改这些限制,只需在'Sn'或'Hn'之后添加第三个参数,就可以修改限制的新值。

$ ulimit -Sn 5000

$ ulimit -Hn 5000

但是,以这种方式更改的限制在会话(即终端)打开之前会暂时保持修改。按照下面的步骤来永久修改限制。

在Linux中永久设置打开文件的限制

在'vim'或任何你选择的编辑器中打开文件'/etc/security/limits.conf'。注意,这是一个写保护文件,应该用'sudo'或以管理员身份打开。

$ sudo vim /etc/security/limits.conf

注意,限制可以为所有用户设置,也可以为单个用户设置。设置硬限制的语法是。

* hard nofile 5000

'*'是表示该限制是针对所有用户的。第二行的字符串是限制的类型,在这里是'hard'。

第三个字符串是我们要修改的限制。在我们的例子中,它是'nofile',即文件的数量。和这个一样,其他限制也可以在这里设置,例如,'noproc'表示进程的数量。最后,第四个字符串是要设置的新的文件数量限制。

如果你想只为某个用户设置限制,你可以像下面这样做。

abhi soft nofile 5000

这里'abhi'是用户的名字。

现在,我们将把这些行添加到文件中,然后看看限制是否被改变了。

保存并退出文件。

这些限制将要求用户注销并重新登录,因为正在运行的程序仍在考虑旧的限制。再次运行 ulimit 来验证这些限制是否真的被修改了。

$ ulimit

在这篇文章中,我们已经看到了如何改变Linux中打开文件数量的限制。如果你想了解更详细的命令,请运行'ulimit --help'。

目录结构
全文