美文网首页
【Linux】Too many open files

【Linux】Too many open files

作者: Bogon | 来源:发表于2023-11-08 22:37 被阅读0次
    # systemctl  status rinetd
    ● rinetd.service - Rinetd Daemon
       Loaded: loaded (/etc/systemd/system/rinetd.service; enabled; vendor preset: disabled)
       Active: active (running) since 三 2023-09-20 00:11:32 CST; 1 months 20 days ago
      Process: 10527 ExecStart=/usr/local/rinetd/sbin/rinetd -c /usr/local/rinetd/etc/rinetd.conf (code=exited, status=0/SUCCESS)
     Main PID: 10528 (rinetd)
       CGroup: /system.slice/rinetd.service
               └─10528 /usr/local/rinetd/sbin/rinetd -c /usr/local/rinetd/etc/rinetd.conf
    
    10月 24 20:12:19 server rinetd[10528]: accept(6): Too many open files
    10月 24 20:12:19 server rinetd[10528]: accept(6): Too many open files
    10月 24 20:12:19 server rinetd[10528]: accept(6): Too many open files
    10月 24 20:12:19 server rinetd[10528]: accept(6): Too many open files
    10月 24 20:12:19 server rinetd[10528]: accept(6): Too many open files
    10月 24 20:12:19 server rinetd[10528]: accept(6): Too many open files
    10月 24 20:12:19 server rinetd[10528]: accept(6): Too many open files
    10月 24 20:12:19 server rinetd[10528]: accept(6): Too many open files
    10月 24 20:12:19 server rinetd[10528]: accept(6): Too many open files
    10月 24 20:12:19 server rinetd[10528]: accept(6): Too many open files
    

    根据输出,我们可以进行以下详细解读:

    • 服务名称: rinetd.service,这是 Rinetd Daemon 服务的名称。
    • 加载状态: loaded,表示服务已加载。
    • 启用状态: enabled,表示服务已启用。
    • 厂商预设: disabled,表示该服务的厂商预设状态为禁用。
    • 活动状态: active (running),表示服务正在运行。
    • 启动时间: 三 2023-09-20 00:11:32 CST,表示服务在2023年9月20日00:11:32 CST时启动。
    • 进程信息:
      • 命令: /usr/local/rinetd/sbin/rinetd -c /usr/local/rinetd/etc/rinetd.conf,表示服务启动时使用的完整命令。
      • 进程ID: 10528,表示主进程的进程ID。
    • 进程控制组: /system.slice/rinetd.service,表示服务所在的进程控制组。
    • 错误信息:
      • accept(6): Too many open files,表示进程在接受连接时遇到了 "Too many open files" 错误。
      • 这个错误通常表示系统打开文件描述符的数量已达到限制,无法再打开更多的文件。
      • 可能需要调整系统的文件描述符限制,以便服务能够处理更多的连接。

    综上所述,该输出提供了 Rinetd Daemon 服务的状态信息以及出现的错误信息。要解决错误,可能需要调整系统的文件描述符限制。

    # ulimit  -n
    1048576
    

    根据输出,ulimit -n 命令显示当前用户的文件描述符限制为 1048576。文件描述符限制指定了一个进程可以打开的文件数的最大数量。
    在这种情况下,当前用户可以打开的文件数是 1048576。这个限制通常足够满足大多数应用程序的需要。

    注意:这个限制是针对当前用户的,其他用户可能有不同的限制。如果你是在 root 用户下运行 ulimit -n 命令,那么这个限制是系统的全局限制。

    如果你的 Rinetd 服务在运行时出现了 "Too many open files" 的错误,那么可能需要检查服务的配置文件和代码,确保正确地关闭和释放文件描述符。另外,如果你的服务确实需要打开大量的文件描述符,那么你可以考虑增加文件描述符限制。但请注意,增加文件描述符限制可能会对系统资源产生影响,因此应根据具体需求和系统资源进行权衡。

    为什么能开1048576, 还显示Too many open files ?

    尽管文件描述符限制可以设置为1048576,但仍可能出现"Too many open files"错误的原因有以下几个可能性:

    1. 资源限制:尽管文件描述符限制已设置为1048576,但系统的其他资源限制(例如内存、CPU等)可能已达到其限制。在处理大量连接时,这些资源的限制可能会导致无法打开更多文件。

    2. 服务配置:服务本身可能有配置问题,导致无法正确地关闭和释放文件描述符。如果服务没有正确地管理文件描述符,可能会导致文件描述符被耗尽,即使限制设置为较高的值。

    3. 文件描述符泄露:服务代码中可能存在文件描述符泄露的问题。文件描述符泄露指的是在使用完文件描述符后,没有正确地关闭或释放它们,导致文件描述符逐渐积累,最终耗尽系统资源。

    为了解决这个问题,你可以采取以下步骤:

    1. 检查服务的配置文件和代码,确保正确地关闭和释放文件描述符。确保在使用完文件描述符后,及时关闭它们。

    2. 检查系统的其他资源限制,如内存和CPU等,确保它们未达到限制。如果其他资源限制已达到,可能需要优化系统配置或增加资源。

    3. 进行文件描述符泄露的排查。检查服务代码,确认是否有文件描述符未正确关闭的问题。使用工具如lsof等可以帮助你查看当前系统上打开的文件描述符列表,以便排查泄露问题。

    4. 如果问题仍然存在,可以尝试增加文件描述符限制。但请注意,增加文件描述符限制可能会对系统资源产生影响,因此应谨慎考虑,并根据具体需求和系统资源进行权衡。

    参考

    进程与句柄
    https://mp.weixin.qq.com/s/f0TIqGqcZFnL4M1VEAHHeA

    JAVA程序句柄不释放导致删除文件磁盘空间不释放问题处理
    https://www.jianshu.com/p/832f14468291

    如何查看进程的句柄占用,排查处理句柄泄漏问题
    https://www.jianshu.com/p/5666a4db5ae5

    特定版本Golang应用内存泄露问题处理
    https://www.jianshu.com/p/05c05c56e33c

    Kubernetes 集群文件描述符测漏了
    https://mp.weixin.qq.com/s/e3T91Zocui-vO9hUbZe87Q

    JAVA程序一次句柄泄露问题分析
    https://mp.weixin.qq.com/s/TClhsvwl5jvNnYL2sQ59FA

    线上 udp 客户端请求服务端客户端句柄泄漏问题
    https://mp.weixin.qq.com/s/1dZtib-AkUuEcGNwAFzDww

    记一次定位fd泄漏问题
    https://mp.weixin.qq.com/s/MhYDPBG-imPIle5gidD_Rw

    记一次业务机器文件句柄占用过高问题
    https://mp.weixin.qq.com/s/Se4nQKDo-O-xOmWEsT1khg

    文件描述符(fd)泄漏排查奏是这么简单
    https://mp.weixin.qq.com/s/iLOkfsJrNWodYSV60Jalyw

    相关文章

      网友评论

          本文标题:【Linux】Too many open files

          本文链接:https://www.haomeiwen.com/subject/bxfcwdtx.html