专栏首页运维猫如何增加Linux中的打开文件数限制

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

在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进行更详细的介绍和阅读,并学习如何使用它们。总有一天他们会对你有很大的帮助。

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

本文分享自微信公众号 - 运维猫(centos15),作者:胡齐

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nginx反向代理

    Nginx 服务器的反向代理服务是其最常用的重要功能,由反向代理服务也可以衍生出很多与此相关的 Nginx 服务器重要功能。

    胡齐
  • NFS服务器

    NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统...

    胡齐
  • Tomcat安装部署

    Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和...

    胡齐
  • ceph 运维常用命令总结

        cluster be1756f2-54f7-4d8f-8790-820c82721f17

    DevinGeng
  • Linux 运维必备的 13 款实用工具,拿好了

    IOZone 是一款 Linux 文件系统性能测试工具 可以测试不同的操作系统中文件系统的读写性能。

    lyb-geek
  • Python关键点笔记之使用 pyenv 管理多个 Python 版本依赖环境

    从接触Python以来,一直都是采用virtualenv和virtualenvwrapper来管理不同项目的依赖环境,通过workon、mkvirtualenv...

    Jetpropelledsnake21
  • Navigation 详解三

    在 BottomNavigationActivity 中添加 Toolbar,修改主题为 NoActionBar 的。

    七适散人
  • word 2007 不同章节插入不同样式的页码,不同的页眉

    用户1258909
  • CentOS 8 -- 安装并配置NFS服务

    网络文件系统(Network File System)是一种分布式文件系统协议,通过网络共享远程目录。使用NFS,可以在系统上挂载远程目录,并像对待本地文件一样...

    Kevin song
  • 搭建NFS Server

    执行命令 vim /etc/exports,创建 exports 文件,文件内容如下:

    gang_luo

扫码关注云+社区

领取腾讯云代金券