0

0

如何设置服务最大文件句柄数 ulimit系统限制调整

P粉602998670

P粉602998670

发布时间:2025-07-08 12:23:01

|

1124人浏览过

|

来源于php中文网

原创

要解决linux系统下服务因文件句柄数超限报错的问题,需调整ulimit设置。1. 先用ulimit -n和ulimit -hn查看当前软硬限制;2. 临时修改可用ulimit -n [数值],但重启失效;3. 永久修改需编辑/etc/security/limits.conf或添加子配置文件,设置软硬限制;4. 对systemd服务还需在unit文件中添加limitnofile参数;5. 最后通过查看进程的/proc//limits或执行ulimit -n验证是否生效。

如何设置服务最大文件句柄数 ulimit系统限制调整

Linux系统下,服务运行时常常会因为打开的文件句柄数超过限制而出错,比如报“Too many open files”。这时候就需要调整 ulimit 设置。核心思路是:修改系统和用户层面的限制,并确保服务实际生效。

如何设置服务最大文件句柄数 ulimit系统限制调整

下面从几个常见操作角度说明如何设置最大文件句柄数。

如何设置服务最大文件句柄数 ulimit系统限制调整

1. 查看当前ulimit限制

在动手修改之前,先确认当前的限制值是多少:

ulimit -n

这个命令显示的是当前 shell 会话中允许的最大文件句柄数。
但注意,这只是软限制(soft limit),真正的上限可能受硬限制(hard limit)控制:

如何设置服务最大文件句柄数 ulimit系统限制调整
ulimit -Hn

如果发现数值比较小(比如默认1024),那就要考虑调整了。


2. 临时修改ulimit(重启后失效)

如果你只是想测试一下效果,或者做临时调试,可以直接在终端里改:

ulimit -n 65536

这条命令把当前会话的文件句柄数提升到65536。
不过这种方式只对当前shell有效,一旦退出或重启就失效了。

⚠️ 注意:不能超过硬限制。如果当前硬限制只有4096,那你执行上面这行会提示“Operation not permitted”。

3. 永久修改系统级限制

要让设置持久生效,需要修改系统配置文件:

  • 编辑 /etc/security/limits.conf 文件,添加如下内容:
*               soft    nofile          65536
*               hard    nofile          131072

这里的 * 表示适用于所有用户,你也可以替换成具体用户名或组名。

还可以更细粒度地控制,例如只为某个服务用户设置:

nginx           soft    nofile          65536
nginx           hard    nofile          131072

除了这个主配置文件,有些系统还支持 /etc/security/limits.d/ 目录下的子配置文件,可以在这里单独加一个如 90-ulimit.conf

蓝心千询
蓝心千询

蓝心千询是vivo推出的一个多功能AI智能助手

下载

4. 修改systemd服务的限制(针对使用systemd的服务)

如果你的服务是通过 systemd 管理的(比如用 systemctl start xxx 启动),上面的 limits.conf 可能不起作用。

你需要编辑服务的 unit 文件,加入:

[Service]
LimitNOFILE=65536

可以用以下方式找到并修改服务文件:

systemctl edit --full nginx.service

保存之后 reload 并重启服务:

systemctl daemon-reexec
systemctl restart nginx

这样服务启动时就会带上新的限制。


5. 验证是否生效

修改完之后,最好验证一下新设置是否真的应用上了。

你可以用以下方法查看某个进程的实际限制:

cat /proc//limits | grep 'open files'

或者直接进进程的 shell 环境中执行 ulimit -n


基本上就这些步骤。设置 ulimit 看起来不复杂,但容易忽略不同场景下的差异,比如普通用户、服务账户、systemd 控制等,都要分别处理才能确保真正生效。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1343

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

698

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

293

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

772

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

571

2023.07.06

linux删除文件夹的方法
linux删除文件夹的方法

linux删除文件夹的方法:1、使用rm -r命令;2、使用rm -rf命令;3、使用find命令结合rm命令;4、使用图形界面。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

970

2024.02.23

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

544

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

295

2023.07.20

笔记本电脑卡反应很慢处理方法汇总
笔记本电脑卡反应很慢处理方法汇总

本专题整合了笔记本电脑卡反应慢解决方法,阅读专题下面的文章了解更多详细内容。

1

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号