[WARN ] 2018-06-15 16:55:20,831 --New I/O server boss #1 ([id: 0x55007b59, /0.0.0.0:20880])-- [org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink] [DUBBO] Failed to accept a connection., dubbo version: 2.8.3.2, current host: 127.0.0.1
java.io.IOException: Too many open files
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) ~[na:1.7.0_09-icedtea]
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:226) ~[na:1.7.0_09-icedtea]
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run(NioServerSocketPipelineSink.java:244) ~[netty-3.2.5.Final.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [na:1.7.0_09-icedtea]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [na:1.7.0_09-icedtea]
at java.lang.Thread.run(Thread.java:722) [na:1.7.0_09-icedtea]
Too many open files这个问题主要指的是进程企图打开一个文件,或者叫句柄,但是现在进程打开的句柄已经达到了上限,已经无法打开新句柄了。
网上一提到这个问题就要增加句柄上限,而往往这种情况的发生是因为错误的使用了句柄,可以称作句柄泄漏,找到句柄达到上限的原因才是王道。
以下是Linux中句柄的介绍
Linux中所有的事物或资源都是以文件的形式存在,比如消息、共享内存、连接等,句柄可以理解为指向这些文件的指针。
对于这些句柄,Linux是有数量限制的,单个进程默认可以打开的句柄数上限,可以用以下命令来查看:
ulimit –a
还可以设置某个进程的句柄数上限,这个战士的信息更多,命令是:
ulimit –a PID
https://blog.csdn.net/lkforce/article/details/80710459
参考如上博客
lsof list open file的缩写
但是最终都不是,是内存不够的原因。free -g
如果内存用完了,这个swap会当做内存使用,不过服务会卡顿。
如上只是提供解决思路,服务器上不方便截图。15个人,选中文件夹的时候,可能一个人需要加载100张图片,高峰的时候,java 服务会访问上千张。这个也和内存有很大关系。,服务器上内存只有3G。
df -h 查看磁盘使用情况。