如何设置全局nofile限制以避免"多个打开文件"错误?

 mobiledu2502902041 发布于 2023-02-06 19:10

我有一个websocket服务.这是有错误的:"太多打开的文件",但我已经设置了系统配置:

/etc/security/limits.conf
*               soft    nofile          65000
*               hard    nofile          65000

/etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024 65000

ulimit -n
//output 6500

所以我认为我的系统配置正确.

我的服务由主管管理,可能是主管限制?

检查过程由主管开始:

cat /proc/815/limits
Max open files            1024                 4096                 files 

检查过程手册启动:

cat /proc/900/limits
Max open files            65000                 65000                 files 

原因是使用主管管理服务.如果我重新启动supervisor并重新启动子进程,那么当启动系统管理程序自动启动时,它是"max open files"ok(65000)但错误(1024).

可能是主管启动级别太高而系统配置在主管启动时不起作用?

编辑:

系统:ubuntu 12.04 64bit

这不是主管问题,系统重启后所有进程自动启动都没有使用系统配置(最大打开文件= 1024),但重新启动它没问题.

更新

也许问题是:

https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/938669

http://bryanmarty.com/blog/2012/02/10/setting-nofile-limit-upstart/

增加Ubuntu/Upstart的最大打开文件(initctl)

现在的问题是,如何设置全局nofile限制,因为我不想在我需要的每个upstart脚本中设置nofile限制.

4 个回答
  • 我有同样的问题.即使ulimit -Sn显示我的新限制,运行supervisorctl restart allcatproc文件也没有显示新的限制.

    问题是supervisord仍然有原始限制.因此,它创建的任何子进程仍然具有原始限制.

    所以,解决方案是杀死并重启supervisord.

    2023-02-06 19:11 回答
  • 通过为文件中的所有用户设置限制来解决此问题:

    $ cat /etc/security/limits.d/custom.conf
    * hard nofile 550000
    * soft nofile 550000
    

    设置限制后重新启动服务器.

    非常重要:该/etc/security/limits.d/文件夹包含用户特定的限制.在我的情况下hadoop 2(cloudera)相关的限制.这些用户特定限制将覆盖全局限制,因此如果未应用限制,请务必检查文件夹/etc/security/limits.d/和文件中的用户特定限制/etc/security/limits.conf.

    注意:在所有情况下都可以设置用户特定限制.应避免设置全局(*)限制.就我而言,它是一个孤立的环境,只需要从我的实验中消除文件限制问题.

    希望这可以节省一些人的头发 - 因为我花了太多时间把头发拉出大块头发!

    2023-02-06 19:11 回答
  • 对于任何疲惫的googlers:你可能正在寻找supervisor配置中的minfds设置.此设置似乎对supervisord进程以及子进程都生效.我有许多其他策略,包括在执行实际程序之前启动一个设置限制的shell脚本,但这是唯一有效的方法.

    2023-02-06 19:12 回答
  • 尝试编辑/etc/sysctl.conf并全局调整限制,例如:

    强制限制为100000个文件。

    vi /etc/sysctl.conf
    

    附加:

    fs.file-max = 100000
    

    保存并关闭文件。用户需要注销并重新登录以使更改生效,或者只需键入以下命令:

    sysctl -p
    

    2023-02-06 19:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有