当前位置: 技术问答>linux和unix
Too many open files错误!那位高手帮忙看看是什么原因啊?
来源: 互联网 发布时间:2015-10-07
本文导语: 12:06:12.560 WARN!! [cbinews-213]org.mortbay.jetty.servlet.ServletHandler.getResource(ServletHandler.java:725)30> java.io.FileNotFoundException: /home/cbinews/webapps/ROOT/casestudy/index.jsp (Too many open files) at java.io.FileInputStream.open(Native Method) at java.io...
12:06:12.560 WARN!! [cbinews-213]org.mortbay.jetty.servlet.ServletHandler.getResource(ServletHandler.java:725)30>
java.io.FileNotFoundException: /home/cbinews/webapps/ROOT/casestudy/index.jsp (Too many open files)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(Unknown Source)
at org.mortbay.util.FileResource.getInputStream(FileResource.java:230)
at org.mortbay.util.CachedResource.update(CachedResource.java:73)
at org.mortbay.util.CachedResource.(CachedResource.java:37)
at org.mortbay.util.Resource.cache(Resource.java:321)
at org.mortbay.http.HttpContext.getResource(HttpContext.java:832)
at org.mortbay.jetty.servlet.WebApplicationContext.getResource(WebApplicationContext.java:1246)
at org.mortbay.jetty.servlet.ServletHandler.getResource(ServletHandler.java:711)
at org.mortbay.jetty.servlet.ServletHandler$Context.getResource(ServletHandler.java:943)
at org.apache.jasper.JspCompilationContext.getResource(JspCompilationContext.java:234)
at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:405)
at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:390)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:471)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:222)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:135)
at org.mortbay.jetty.servlet.Default.handleGet(Default.java:293)
at org.mortbay.jetty.servlet.Default.service(Default.java:208)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1807)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1757)
at org.mortbay.http.HttpServer.service(HttpServer.java:879)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:961)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:300)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:511)
错误提示是这样的,偶尔报个错误!
再过断时间就从浏览器访问一些页面就报页面不存在
重启web应用服务器就可以了
由什么原因引起的啊?
急啊!
是linux操作系统
java.io.FileNotFoundException: /home/cbinews/webapps/ROOT/casestudy/index.jsp (Too many open files)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(Unknown Source)
at org.mortbay.util.FileResource.getInputStream(FileResource.java:230)
at org.mortbay.util.CachedResource.update(CachedResource.java:73)
at org.mortbay.util.CachedResource.(CachedResource.java:37)
at org.mortbay.util.Resource.cache(Resource.java:321)
at org.mortbay.http.HttpContext.getResource(HttpContext.java:832)
at org.mortbay.jetty.servlet.WebApplicationContext.getResource(WebApplicationContext.java:1246)
at org.mortbay.jetty.servlet.ServletHandler.getResource(ServletHandler.java:711)
at org.mortbay.jetty.servlet.ServletHandler$Context.getResource(ServletHandler.java:943)
at org.apache.jasper.JspCompilationContext.getResource(JspCompilationContext.java:234)
at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:405)
at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:390)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:471)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:222)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:135)
at org.mortbay.jetty.servlet.Default.handleGet(Default.java:293)
at org.mortbay.jetty.servlet.Default.service(Default.java:208)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1807)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1757)
at org.mortbay.http.HttpServer.service(HttpServer.java:879)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:961)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:300)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:511)
错误提示是这样的,偶尔报个错误!
再过断时间就从浏览器访问一些页面就报页面不存在
重启web应用服务器就可以了
由什么原因引起的啊?
急啊!
是linux操作系统
|
系统同时打开的文件太多了
用sysctl fs.file
内核参数fs.file-nr包括三个参数值,第一个参数表示系统中曾经同时打开过的文件数峰值,
第二个参数表示空闲(分配后已释放)的文件数,
第三个参数表示可以打开的最大文件数,其值等于fs.file-max。
当前打开的文件数 = 第一个参数值 - 第二个参数值
要想更改设置:
sysctl -w 参数名=参数值
例如:sysctl -w fs.file-max=10240 设置系统允许同时打开的最大文件数为10240。
用sysctl fs.file
内核参数fs.file-nr包括三个参数值,第一个参数表示系统中曾经同时打开过的文件数峰值,
第二个参数表示空闲(分配后已释放)的文件数,
第三个参数表示可以打开的最大文件数,其值等于fs.file-max。
当前打开的文件数 = 第一个参数值 - 第二个参数值
要想更改设置:
sysctl -w 参数名=参数值
例如:sysctl -w fs.file-max=10240 设置系统允许同时打开的最大文件数为10240。
|
本质的原因,应该是程序有问题,可能是你程序打开了文件句柄而没有进行关闭,导致文件句柄的泄漏。
记住:资源的泄漏不光指内存的泄漏,还有其它的泄漏,比如打开了文件句柄而不关闭等。
记住:资源的泄漏不光指内存的泄漏,还有其它的泄漏,比如打开了文件句柄而不关闭等。
|
同时打开的文件句柄太多,超过了系统的最大限制,如果不是程序的问题就该系统参数,建议你还是查查程序有没有在用完后关闭文件。
|
打开文件句柄太多而受限,看一下: ulimit -a
实质上可能是程序的问题,是否有不断的打开文件而没有关闭?
实质上可能是程序的问题,是否有不断的打开文件而没有关闭?
|
通常不是系统的问题, 是程序的问题.
还没有看到哪个系统需要打开的文件数超过系统限制.
如果方便,请帮我儿子投一票
http://www.nutricia.com.cn/view.asp?id=736
谢谢。
还没有看到哪个系统需要打开的文件数超过系统限制.
如果方便,请帮我儿子投一票
http://www.nutricia.com.cn/view.asp?id=736
谢谢。