记一次生产报too man open files

    技术2026-08-16  18

    有一天私有云无法访问,马上联系厂商,最后厂商发现好多容器不停重启,经过日志查看发现平台打开文件句柄太多,很奇怪,就开始排查,最后发现一个端口,定位到应用spring actuator.

    这个应用是我为了监控微服务而发布的一个监控应用,马上看日志,发现应用报错,too many open files,愣了,从来没遇到过啊。求助运维哥,

    1、获取应用进程号

        ps -ef|grep spring actuator

    2、进入到进程

       cd /proc/4801

    3、查看进程详情 

        ll

    4、查看进程打开文件句柄的详细信息

    ll

     

    图不全,发现打开了好多socket,

    5、统计打开句柄数

    ls |wc -l

    1000多个,究竟什么鬼。

    基本用的都是原生框架,里面没有自己写的代码,所以怀疑spring-boot-admin-starter-server(2.2.3)有问题,换个版本吧,

    版本换成2.2.1

    继续用刚才上面的方式统计打开句柄数观察,80左右个句柄数,正常。至此问题解决。

    看来spring有时候也坑啊

    Processed: 0.013, SQL: 9