如何在 Linux 中更改打开文件限制?

大家好,在本文中,我们将讨论如何更改 Linux 中的打开文件限制。

什么是打开文件限制?

打开文件限制 是用户在当前活动会话中可以打开的最大文件数。 大多数情况下,系统管理员、开发人员或使用 MySQL 或其他数据库管理系统 (DBMS) 的用户。 例如,在 MySQL 中,默认打开文件限制为 1024,但它会自动将其限制设置为系统的打开文件限制。 有两种类型的打开文件限制:

  • 硬限制:这是可以更改软限制的最大值。 它只能由 root 用户更改。
  • 软限制:这是任何用户或进程可以更改的打开文件限制。 它会在每个活动会话中临时更改。

检查 Linux 中的打开文件限制

我们可以检查硬限制和软限制使用 超限 命令。 要检查硬限制,我们将使用 -H 硬限制参数。 执行以下命令:

ulimit -Hn 

要检查软文件限制,我们将使用 -S 软限制参数。 执行以下命令:

ulimit -Sn 

要检查当前活动会话中可以打开的最大打开文件数,请执行以下命令:

cat /proc/sys/fs/file-max 
截图来自 2022 02 27 13 37 30

这里,最大打开文件限制设置为 100000。硬限制为 1048576,软限制为 1024。让我们看看如何更改这些限制。

更改 Linux 中的打开文件限制

要更改系统范围的最大打开文件限制,请执行以下命令并根据需要设置该值:

sysctl -w fs.file-max=500000 
截图来自 2022 02 27 13 46 04

要更改硬限制,请执行以下命令:

ulimit -Hn 10000 
截图来自 2022 02 27 13 50 58

要更改软限制,请执行以下命令:

ulimit -Sn 5000 
截图来自 2022 02 27 13 52 50

但是,使用 ulimit 命令更改的硬限制和软限制值在活动会话之前仍然是临时的。 要永久更改这些值,可以按如下方式完成:

在终端窗口中执行以下命令打开 /etc/security/limits.conf 文件:

sudo vi /etc/security/limits.conf 
截图来自 2022 02 27 14 13 30
截图自 2022 02 27 14 00 04

在这里,您可以通过添加以下行来更改特定用户或所有用户的值:

* hard nofile 10000 
* soft nofile 5000 
截图来自 2022 02 27 14 10 02

在这里, * 表示所有用户,要为特定用户设置限制,请替换 * 通过用户名。 这 nofile 表示可以在特定会话中打开的文件数。 要保存文件,请按 Esc 键,然后按 :wq 并按下 Enter. 因此,硬限制和软限制已被永久设置。

结论

因此,我们学习了如何临时和永久更改打开文件限制。 每次打开系统文件时,都需要root权限,使用 sudo 命令并在出现提示时输入密码,就像我们在打开 /etc/security/limits.conf.