too many open files问题

linux环境下,程序运行时,出现了too many open files的错误。

通过名字就能看出来,是打开了太多的文件,超过了系统限制。

ulimit -a

通过这个命令可以查看当前系统设置的最大句柄数是多少

可以看到,文件打开数量,最大值是1024,如果再有新文件打开就会报上述错误。

这个问题主要是一些IO流没有关闭造成的,比如我这出现这个问题的原因就是解压时候ZipFile对象没有close()造成的。

查看具体是什么没有关闭的方法:

jps

这个命令能够查看java环境下的正在执行的线程的pid

然后

lsof -p XXX >openfiles.log

上边的XXX填写pid号,如上边jps查询出来的10240、20180等

lsof -p 10240 >1.log
lsof -p 20180 >2.log
lsof -p 26311 >3.log
lsof -p 9225 >4.log
lsof -p 10186 >5.log
lsof -p 10300 >6.log

将信息导入到这些log进行查看,就能观察出来了。

 

转载于:https://www.cnblogs.com/jinzhiming/p/10304694.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值