记录一次生产的java.io.IOException: Too many open files问题

**

记录一次生产的java.io.IOException: Too many open files问题

发现生产项目接口请求处理延时问题很严重,并且在报Too many open files错误

使用命令 lsof -p pid| wc -l 发现链接数很高;
使用命令 netstat -anp | grep pid 查看具体链接状态 ,大多数处于CLOSE_WAIT 状态
大部分链接为CLOSE_WAIT状态
也可以改liunx配置来增加打开最大文件权柄数;

查找代码中比较耗时的点,发现大部分为查询数据库操作;
发现数据库io异常,通过慢查询发现,部分查询方法耗时比较久,造成io资源异常, 后续表加索引解决这个问题;

问题原因: 该项目采用springdateJPA 与数据库做交互,jpa中的save方法会在保存的时候,先查询一次该表的数据,由此来判断新增或者修改,查询时改表无索引,造成查询缓慢,数据库io异常;
解决方案:1.加索引,2、通过修改代码,使jpa在save时不去查询数据库,直接新增或者修改;

个人记录。文笔太菜!!

猜你喜欢

转载自blog.csdn.net/qq_39925099/article/details/126071359
今日推荐