前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何增加Linux中的打开文件数限制

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

作者头像
胡齐
发布2019-09-23 18:08:59
7.3K0
发布2019-09-23 18:08:59
举报
文章被收录于专栏:运维猫运维猫

在Linux中,您可以更改打开文件的最大数量。您可以使用ulimit命令修改此数字。它授予您控制shell启动的资源或由其启动的进程的能力。

另请参阅: 按用户级别设置Linux运行进程限制

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

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

查找Linux打开文件限制

该值存储在:

[root@localhost ~]# cat /proc/sys/fs/file-max

483438

您将看到的数字显示用户每次登录会话可以打开的文件数。结果可能会因系统而异。

例如,在我的CentOS服务器上,限制设置为483438,而在我在家运行的Ubuntu服务器上,默认限制设置为176772。

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

检查Linux中的硬限制

[root@localhost ~]# ulimit -Hn

65536

检查Linux中的软限制

[root@localhost ~]# ulimit -Sn

65536

要查看不同用户的硬值和软值,您只需将用户“su”切换到限制您要检查的用户即可。

例如:

[root@localhost ~]# su - smgadmin

上一次登录:五 7月 26 22:21:47 CST 2019pts/0 上

[smgadmin@localhost ~]$ ulimit -Sn

65536

[smgadmin@localhost ~]$ ulimit -Hn

65536

096

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

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

您可以通过编辑内核指令来增加Linux中打开文件的限制 fs.file-max。为此,您可以使用sysctl实用程序。

Sysctl用于在运行时配置内核参数。

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

[root@localhost ~]# sysctl -w fs.file-max=500000

fs.file-max = 500000

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

[root@localhost ~]# cat /proc/sys/fs/file-max

500000

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

[root@localhost ~]# vi /etc/sysctl.conf

添加以下行:

fs.file-MAX = 500000

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

cat /proc/sys/fs/file-max

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

sysctl -p

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

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

[root@localhost ~]# vi /etc/security/limits.conf

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

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

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

以下是为用户smgadmin设置软硬限制的示例:

##最大打开文件的硬限制示例

* hard nofile 65536

##最大打开文件的软限制示例

* soft nofile 65536

最后的想法

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

虽然我们只是略微表面,但我强烈建议您对/etc/sysctl.conf和/etc/security/limits.conf进行更详细的介绍和阅读,并学习如何使用它们。总有一天他们会对你有很大的帮助。

关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查找Linux打开文件限制
    • 检查Linux中的硬限制
    • 如何在Linux中检查系统范围的文件描述符限制
    • 在Linux中设置用户级别打开文件限制
    • 最后的想法
    相关产品与服务
    云数据库 MySQL
    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档