记一次生产报too man open files

比眉伴天荒 2023-02-23 03:51 137阅读 0赞

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

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

1、获取应用进程号

  1. ps -ef|grep spring actuator

20200705022506876.png

2、进入到进程

cd /proc/4801

3、查看进程详情

  1. ll

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JlbnhpYW9oYWk1Mjk_size_16_color_FFFFFF_t_70

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

ll

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JlbnhpYW9oYWk1Mjk_size_16_color_FFFFFF_t_70 1

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

5、统计打开句柄数

ls |wc -l

1000多个,究竟什么鬼。

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

版本换成2.2.1

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

看来spring有时候也坑啊

发表评论

表情:
评论列表 (有 0 条评论,137人围观)

还没有评论,来说两句吧...

相关阅读