Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何增加Linux中的打开文件数限制

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

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

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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
linux中修改打开文件的数量限制
在 Linux中你可以更改打开文件的最大数量。你可以使用ulimit命令。它使你能够控制可用于 shell 或由它启动的进程的资源。 查找 Linux 打开文件限制 # cat /proc/sys/fs/file-max 365004 该值表示每次登录会话可以打开的文件数。不同系统结果可能会有所不同。 例如在一个 CentOS 我的服务器,限制设置为 365004 在 Linux 中检查硬限制 # ulimit -Hn 65535 检查 Linux 中的软限制 # ulimit -Sn 65535
入门笔记
2022/06/02
3.8K0
Linux:谁能打开多少个文件,可以精准控制!只需这行配置。
在Linux中,可以更改打开文件的最大数量。使用ulimit命令修改这个限制值,从而控制文件资源的访问阈值。
程序员小助手
2020/04/26
9510
文件描述符限制
Linux的核心思想之一就是”一切皆文件”。即Linux中所有的内容都是以文件的形式保存和管理的,它为不同类型的文件提供了统一的操作接口,对于不同类型的文件,我们都可以使用fopen()/fclose()/fwrite()/fread()等对这些文件进行读写处理。在Linux中,普通文件、目录、链接文件、字符设备、块设备以及网络套接字等等都以文件的形式存在。
changan
2020/11/04
1.8K0
linux中/etc/security/limits.conf配置文件说明
linux资源限制配置文件是/etc/security/limits.conf;限制用户进程的数量对于linux系统的稳定性非常重要。 limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量。
神秘的寇先森
2019/03/15
23.3K0
高并发下linux ulimit优化
系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是一种 linux 系统的内键功能,它具有一套参数集,用于为由它生成的 shell 进程及其子进程的资源使用设置限制。
用户7639835
2021/11/19
2.8K0
Linux Linux下最大文件描述符设置
说明:第一个数表示当前系统已分配的文件描述符数(文件句柄数),第二个数为分配后已释放的文件描述符数(当前不再使用的文件描述符数),第三个数为最大文件描述符数,等于file-max。
授客
2019/09/11
6.8K0
服务器文件句柄数_Linux文件句柄机制
在配置我们的 Red Hat Linux 服务器时,确保文件句柄的最大数量足够大是非常关键的。文件句柄设置表示您在 Linux 系统中可以打开的文件数量。
全栈程序员站长
2022/11/02
3.1K0
linux文件句柄数上限_怎么清除文件句柄
网上说什么的也有,你抄我的我抄你的,也是醉了,故自己综合查阅的资料,根据自己的理解和判断以及部分的实践整理下吧,也不敢保证都是对的,如果有比较大的错误,希望看到这篇文章的你提出来,大家共同进步!
全栈程序员站长
2022/11/02
5.1K0
File Descriptor问题总结
在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。 文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符。 程序刚刚启动的时候,0是标准输入,1是标准输出,2是标准错误。如果此时去打开一个新的文件,它的文件描述符会是3。POSIX标准要求每次打开文件时(含socket)必须使用当前进程中最小可用的文件描述符号码,因此,在网络通信过程中稍不注意就有可能造成串话。标准文件描述符图如下:
mingjie
2022/05/12
1.1K0
File Descriptor问题总结
深入单机TCP服务器最大连接数
在确定最大连接数之前,先来看看系统如何标识一个tcp连接。系统用一个4四元组来唯一标识一个TCP连接:{local ip, local port,remote ip,remote port}。
sunsky
2021/01/07
10.8K0
Too many open files (CLOSE_WAIT过多)的解决方案:修改打开文件数的上限值、调整TCP/IP的参数
close_wait 状态出现的原因:客户端要与服务端断开连接,先发一个FIN表示自己要主动断开连接了,服务端会先回一个ACK,这时表示客户端没数据要发了,但有可能服务端数据还没发完,所以要经历一个close_wait,等待服务端数据发送完,再回一个FIN和ACK。
公众号iOS逆向
2022/08/22
2.6K0
Too many open files (CLOSE_WAIT过多)的解决方案:修改打开文件数的上限值、调整TCP/IP的参数
/etc/security/limits.conf的相关说明
通过ulimit -n命令可以查看Linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值。那么应该在哪里设置呢?
拓荒者
2019/03/11
2.4K0
Linux下TCP最大连接数受限问题
一、 文件数限制修改 1、用户级别 查看Linux系统用户最大打开文件限制: # ulimit -n 1024 (1) vi /etc/security/limits.conf mysql soft nofile 10240 mysql hard nofile 10240 其中mysql指定了要修改哪个用户的打开文件数限制。 可用'*'号表示修改所有用户的限制;soft或hard指定要修改软限制还是硬限制;10240则指定了想要修改的新的限制值,即最大打开文件数(请注意软限制值要小于或等于硬限制)。 (
李海彬
2018/03/23
17.6K0
Linux内核参数使用与优化介绍
Tips : OOM(Out Of Memory) killer机制是指Linux操作系统发现可用内存不足时,强制杀死一些用户进程(非内核进程),来保证系统有足够的可用内存进行分配。 Tips : swappiness参数在Linux 3.5版本前后的表现并不完全相同,Redis运维人员在设置这个值需要关注当前操作系统的内核版本。
全栈工程师修炼指南
2022/09/29
3.6K0
file_handle_windows句柄
欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。
全栈程序员站长
2022/11/07
7590
使用ulimit 命令、/etc/security/limits.conf、proc 调整系统参数
Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量 系统总限制是在这里,/proc/sys/fs/file-max.可以通过cat查看目前的值,修改/etc/sysctl.conf 中也可以控制. /proc/sys/fs/file-nr,可以看到整个系统目前使用的文件句柄数量 linux 中数据的含义 /proc/sys/fs/file-nr [root@localhost logs]# cat /proc/sys/fs/fi
sunsky
2020/08/20
2.1K0
Linux下突破限制实现高并发量服务器
1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发 数 量都要受到系统对用户单一进程同时可打开文件数量的 限制(这是因为系统为每个TCP连接都要创 建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当 前用户进程打开的文件数限制: [speng@as4 ~]$ ulimit -n 1024 这表示当前用户的每个进程最多允许同 时打开1024个文件,这1024个文件中还得除去每个进
李海彬
2018/03/22
4.1K0
The user limit for number of open files is too small.
https://www.tecmint.com/increase-set-open-file-limits-in-linux/
西湖醋鱼
2020/12/30
6760
linux修改文件句柄数生效_linux文件句柄释放
在一个工作中的实践项目中,项目是一个部署到linux下的中间件项目,当收到一个Client登录的时候,需要为这个Client打开四个文件,当进行 多用户的大压力测试的时候,程序就出问题了: too many opened files。 网上一查,发现有人也碰到过类似的socket/File: Can’t open so many files问题。 在此总结一下这个问题,希望对后来之人有点帮助。
全栈程序员站长
2022/11/02
8.8K0
linux ulimit 调优
概要: linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不够。这就需要修改ulimit和file-max。特别是提供大量静态文件访问的web服务器,缓存服务器(如squid), 更要注意这个问题。 网上的教程,都只是简单说明要如何设置ulimit和file-max, 但这两者之间的关系差别,并没有仔细说明。 说明: 1. file-max的含义。man proc,可得到file-max的描述: /proc/sys/fs/file-max This file defines a system-wide limit on the number of open files for all processes. (See also setrlimit(2), which can be used by a process to set the per-process limit, RLIMIT_NOFILE, on the number of files it may open.) If you get lots of error messages about running out of file handles, try increasing this value: 即file-max是设置 系统所有进程一共可以打开的文件数量 。同时一些程序可以通过setrlimit调用,设置每个进程的限制。如果得到大量使用完文件句柄的错误信息,是应该增加这个值。 也就是说,这项参数是系统级别的。 2. ulimit Provides control over the resources available to the shell and to processes started by it, on systems that allow such control. 即设置当前shell以及由它启动的进程的资源限制。 显然,对服务器来说,file-max, ulimit都需要设置,否则就可能出现文件描述符用尽的问题 修改: 1.修改file-max
sunsky
2020/08/20
3.1K0
推荐阅读
相关推荐
linux中修改打开文件的数量限制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档