如何增加 Linux 中打开文件的数量限制

在 Linux 中,您可以更改打开文件的最大数量。您可以使用以下命令修改此号码极限值命令。它使您能够控制可用于 shell 或由其启动的进程的资源。

另请阅读:

在这个简短的教程中,我们将向您展示如何检查当前打开文件和文件描述的限制,但为此,您需要拥有系统的 root 访问权限。

首先,让我们看看如何找出 Linux 系统上打开的文件描述符的最大数量。

查找 Linux 打开文件限制

该值存储在:

# cat /proc/sys/fs/file-max

818354

您将看到的数字显示用户每次登录会话可以打开的文件数。根据您的系统,结果可能会有所不同。

例如在一个中央操作系统我的服务器,限制设置为818354,同时乌班图我在家运行的服务器默认限制设置为176772

如果想查看硬限制和软限制,可以使用以下命令:

检查 Linux 中的硬限制

# ulimit -Hn

4096

检查 Linux 中的软限制

# ulimit -Sn

1024

要查看不同用户的硬值和软值,您只需切换用户即可“是”发送给您要检查的限制用户。

例如:

# su marin
$ ulimit -Sn

1024
$ ulimit -Hn

4096

如何检查 Linux 中的系统范围文件描述符限制

如果您正在运行服务器,某些应用程序可能需要对打开的文件描述符有更高的限制。一个很好的例子是MySQL/MariaDB服务或阿帕奇网络服务器。

您可以通过编辑内核指令来增加 Linux 中打开文件的限制fs.file-max。为此,您可以使用系统控制公用事业。

系统命令习惯于。

例如,将打开文件限制增加到50万,您可以以 root 身份使用以下命令:

# sysctl -w fs.file-max=500000

您可以使用以下命令检查打开文件的当前值:

$ cat /proc/sys/fs/file-max

使用上述命令,您所做的更改只会在下次重新启动之前保持活动状态。如果您希望永久应用它们,则必须编辑以下文件:

# vi /etc/sysctl.conf

添加以下行:

fs.file-max=500000

当然,您可以根据需要更改数量。要再次验证更改,请使用:

# cat /proc/sys/fs/file-max

用户需要注销并重新登录才能使更改生效。如果您想立即应用限制,可以使用以下命令:

# sysctl -p

在 Linux 中设置用户级别打开文件限制

上面的示例展示了如何设置全局限制,但您可能希望根据每个用户应用限制。为此,您需要以 root 用户身份编辑以下文件:

# vi /etc/security/limits.conf

如果您是 Linux 管理员,我建议您非常熟悉该文件以及可以对其执行的操作。阅读其中的所有评论,因为它通过限制不同级别的用户/组来管理系统资源方面提供了极大的灵活性。

您应添加的行采用以下参数:

<domain>        <type>  <item>  <value>

这是为用户设置软限制和硬限制的示例马林:

## Example hard limit for max opened files
marin        hard nofile 4096
## Example soft limit for max opened files
marin        soft nofile 1024

最后的想法

这篇简短的文章向您展示了如何检查和配置最大打开文件数的全局和用户级别限制的基本示例。

虽然我们只是触及了表面,但我强烈建议您更详细地了解并阅读有关/etc/sysctl.conf/etc/security/limits.conf并学习如何使用它们。有一天他们会给你很大的帮助。

嘿 TechMint 读者,

令人兴奋的消息!每个月,我们的顶级博客评论者都有机会赢得丰厚奖励,例如免费的 Linux 电子书,例如红细胞认证工程师,红十字会协会,LFCS,学习Linux, 和awk, 每个值20 美元

学习!

我是计算机科学学士学位,也是 Linux 基金会认证的系统管理员。目前在托管行业担任高级技术支持。在空闲时间,我喜欢测试新软件和直排轮滑。


每个教程位于泰克明特由经验丰富的 Linux 系统管理员团队创建使其符合我们的高品质标准。