1. 程式人生 > >Tomcat啟動時報開啟的檔案過多(Too many open files)

Tomcat啟動時報開啟的檔案過多(Too many open files)

現在是北京時間20:30,本來5點就可以下班的,正常情況是4點下班。一直在修改緊急BUG。在最終要完成終於可以鬆一口氣的時候,釋出程式Tomcat突然拋了一個開啟的檔案過多,由於經驗淺薄,頓時就懵逼了。在解決問題後,決定寫下這篇部落格,記錄解決問題的經過。

日誌如下:

2017-01-04 19:50:16.386 DEBUG [] [] org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
04-Jan-2017 19:50:16.711 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
04-Jan-2017 19:50:21.717 INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [5,002] milliseconds.
04-Jan-2017 19:50:21.718 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [/jbotm] startup failed due to previous errors
04-Jan-2017 19:50:21.729 WARNING [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [jbotm] appears to have started a thread named [SeedGenerator Thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 sun.security.provider.SeedGenerator$ThreadedSeedGenerator.run(SeedGenerator.java:362)
 java.lang.Thread.run(Thread.java:745)
04-Jan-2017 19:50:21.730 WARNING [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [jbotm] appears to have started a thread named [SeedGenerator Thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 java.lang.Thread.sleep(Native Method)
 sun.security.provider.SeedGenerator$ThreadedSeedGenerator$BogusThread.run(SeedGenerator.java:475)
 java.lang.Thread.run(Thread.java:745)
04-Jan-2017 19:50:21.736 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /u01/app/apache-tomcat-8.0.36/webapps/jbotm.war has finished in 18,067 ms
04-Jan-2017 19:50:21.737 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /u01/app/apache-tomcat-8.0.36/webapps/examples
04-Jan-2017 19:50:21.738 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.processContextConfig Missing context.xml: file:/u01/app/apache-tomcat-8.0.36/conf/context.xml
 java.io.FileNotFoundException: /u01/app/apache-tomcat-8.0.36/conf/context.xml (開啟的檔案過多)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:524)
	at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:482)
	at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:739)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:394)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:136)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

04-Jan-2017 19:50:21.739 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.processContextConfig Parse error in context.xml for /examples
 java.io.FileNotFoundException: /u01/app/apache-tomcat-8.0.36/conf/context.xml (開啟的檔案過多)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:623)
	at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
	at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1451)
	at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:542)
	at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:482)
	at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:739)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:394)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:136)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

04-Jan-2017 19:50:21.743 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.getWebXmlSource Error processed default web.xml named conf/web.xml at /u01/app/apache-tomcat-8.0.36/conf/web.xml
 java.io.FileNotFoundException: /u01/app/apache-tomcat-8.0.36/conf/web.xml (開啟的檔案過多)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at org.apache.catalina.startup.ContextConfig.getWebXmlSource(ContextConfig.java:1837)
	at org.apache.catalina.startup.ContextConfig.getGlobalWebXmlSource(ContextConfig.java:1735)
	at org.apache.catalina.startup.ContextConfig.getDefaultWebXmlFragment(ContextConfig.java:1460)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1109)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:779)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:306)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5202)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

04-Jan-2017 19:50:21.745 SEVERE [localhost-startStop-1] org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml Parse error in application web.xml file at file:/u01/app/apache-tomcat-8.0.36/conf/web.xml
 java.io.FileNotFoundException: /u01/app/apache-tomcat-8.0.36/conf/web.xml (開啟的檔案過多)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:623)
	at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
	at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1451)
	at org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml(WebXmlParser.java:120)
	at org.apache.catalina.startup.ContextConfig.getDefaultWebXmlFragment(ContextConfig.java:1536)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1109)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:779)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:306)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5202)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

04-Jan-2017 19:50:21.746 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.configureStart Marking this application unavailable due to previous error(s)
04-Jan-2017 19:50:21.747 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal One or more components marked the context as not correctly configured
04-Jan-2017 19:50:21.747 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [/examples] startup failed due to previous errors
04-Jan-2017 19:50:21.749 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /u01/app/apache-tomcat-8.0.36/webapps/examples has finished in 12 ms
04-Jan-2017 19:50:21.749 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /u01/app/apache-tomcat-8.0.36/webapps/manager
04-Jan-2017 19:50:21.750 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying configuration descriptor /u01/app/apache-tomcat-8.0.36/webapps/manager/META-INF/context.xml
 java.io.FileNotFoundException: /u01/app/apache-tomcat-8.0.36/webapps/manager/META-INF/context.xml (開啟的檔案過多)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1433)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1048)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

04-Jan-2017 19:50:21.762 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.processContextConfig Missing context.xml: file:/u01/app/apache-tomcat-8.0.36/webapps/manager/META-INF/context.xml
 java.io.FileNotFoundException: /u01/app/apache-tomcat-8.0.36/webapps/manager/META-INF/context.xml (開啟的檔案過多)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:524)
	at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:501)
	at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:739)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:394)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:136)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

04-Jan-2017 19:50:21.762 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.processContextConfig Parse error in context.xml for /manager
 java.io.FileNotFoundException: /u01/app/apache-tomcat-8.0.36/webapps/manager/META-INF/context.xml (開啟的檔案過多)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:623)
	at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
	at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1451)
	at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:542)
	at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:501)
	at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:739)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:394)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:136)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

04-Jan-2017 19:50:21.764 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 
 org.apache.catalina.LifecycleException: Failed to start component [/manager]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to process either the global, per-host or context-specific context.xml file therefore the [/manager] Context cannot be started.
	at org.apache.catalina.startup.FailedContext.startInternal(FailedContext.java:199)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
	... 10 more

04-Jan-2017 19:50:21.766 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory /u01/app/apache-tomcat-8.0.36/webapps/manager
 java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [/manager]
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:729)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

04-Jan-2017 19:50:21.766 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /u01/app/apache-tomcat-8.0.36/webapps/manager has finished in 17 ms
04-Jan-2017 19:50:21.766 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /u01/app/apache-tomcat-8.0.36/webapps/docs
04-Jan-2017 19:50:21.767 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.processContextConfig Missing context.xml: file:/u01/app/apache-tomcat-8.0.36/conf/context.xml
 java.io.FileNotFoundException: /u01/app/apache-tomcat-8.0.36/conf/context.xml (開啟的檔案過多)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at org.apache.catalina.startup.ContextConfig.processContextConfig(ContextConfig.java:524)
	at org.apache.catalina.startup.ContextConfig.contextConfig(ContextConfig.java:482)
	at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:739)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:394)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:136)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

是Linux作業系統的開啟檔案數太小造成的:

 ulimit -a    檢視當前系統的最大檔案開啟數


也可以直接: ulimit -n  顯示系統開啟檔案數

設定檔案數: ulimit -n 65535  檔案數65535根據自身條件設定

再用ulimit -n 檢視的時候顯示已經修改成功。


這時在啟動Tomcat就一切OK了

一個可以互相學習、閒聊、一起成長的技術群:307360805

相關推薦

Tomcat啟動時報開啟檔案過多Too many open files

現在是北京時間20:30,本來5點就可以下班的,正常情況是4點下班。一直在修改緊急BUG。在最終要完成終於可以鬆一口氣的時候,釋出程式Tomcat突然拋了一個開啟的檔案過多,由於經驗淺薄,頓時就懵逼了。在解決問題後,決定寫下這篇部落格,記錄解決問題的經過。 日誌如下:

【Linux】解決tomcat出現Too many open files開啟檔案過多問題

當用linux做高併發伺服器時,會遇到"Too many open files"的錯誤。Linux是有檔案控制代碼限制的(open files),而且Linux預設不是很高,一般都是1024,做高併發生產伺服器用其實很容易就達到這個數量。在linux中執行ulimit -a

Linux 檔案開啟過多 (Too many open files)

    如圖是程式運行了一段時間後丟擲來的一個bug, 剛開始看這個bug的時候各種網上找答案, 無外乎教你怎麼改ulimit(就是linux最大開啟檔案數), 當然不是說改這個沒有用, 作為程式開發者來說, 如果程式執行出現了bug則必然是程式的問題

mina通訊,對於高併發的產生:java.io.IOException: Too many open files(開啟檔案控制代碼過多問題)

起因:由於業務系統有多個定時任務定時訪問銀行端,銀行每天也有大量業務訪問業務系統,都是通過mina通訊,部署在測試環境的系統每過一兩天開啟控制代碼過萬,生產的也是一週左右不重啟業務系統就會爆掉。一開始並不清楚到底是哪方面原因導致控制代碼增長這麼快,因為這是一個老系統,經過多次升級,大量的併發、多執行緒,所以只

解決tomcat too many open files問題

限制 spa 8.0 .com nofile tom files 環境 內容 運行環境為 centos7.2 tomcat 為 tomcat 8.0.39.0 ulimit -a ulimit -n 解決的都是 系統的問題 tomcat 報too many

linux下tomcattoo many open files

設置 inux roc spa ava linux 執行 java 使用命令 一、問題表象:   程序日誌報錯:java.io.IOException: Too many open files at 二、解決方案:   1、查看系統允許打開的最大文件數:     ca

【效能優化】tomcat & Redis 優化:關於 too many open files error

背景說明:     使用Jmeter 進行壓力測試,同時在linux環境下使用“lsof -p 4154 | wc -l”檢視io訪問量。     進行壓力測試時發現io訪問量在4500左右,伺服器redis報錯,錯誤資訊too many open files error。原

Linux下tomcat報錯“java.net.SocketException: Too many open files”--MINA2 錯誤解決

轉載: 因為這個問題,我也是經過三次修改後,才徹底解決該問題。我是遇到了錯誤資訊:“Too many open files”和“No buffer space availabel”,從我的專案上看,兩個問題都是因為使用MINA2時,有些資源沒有關閉造成的。但是出現“To

記一次和Tomcat有關的Too many open files錯誤

前言 最近在公司開發推送系統相關的專案,需要在單臺Linux伺服器上支援幾十萬到上百萬的連線,為此,修改了作業系統的檔案描述符上限。 相關修改操作可參考: 修改並重啟後使用ulimit -a檢視發現open-file變大。之後,使用netty簡單構建一個服務端demo

高並發連接導致打開文件過多:java.io.IOException: Too many open files 解決方法

限制 security 打開文件 soft api too limit com inf 用 CentOS 做 API 接口服務器供其他終端調用時,並發量高會報錯:java.io.IOException: Too many open files。 其原因是在 Linux 下

測並發 Too many open files 問題的解決

ref get http sign pro light 程序 sched pen ulimit -a 查看限制顯示: core file size (blocks, -c) 0 data seg size (kbytes, -d) u

too many open files錯誤

一個 google pid .json 斷開連接 ret 服務 spi end 雖然一直在Linux下開發服務,但是說實話,Linux的東西我基本不懂。這次這個問題的解決,讓我稍微知道一些東西了。 大家都知道,最近我模仿binux大嬸的pyspider的害羞組在線上跑了一

Linux server上too many open files問題

server bsp one 當前 java程序 clas gre work -h 之前測試遇到了"too many open files"的問題。ulimit -Hn 查了下發現server上最大open file數是4096。寫了個簡單的腳本檢測發現進程創建的fd個數在

too many open files linux服務器 golang java

add -m 使用 san awk margin 1.0 占用 sim 1. 現象服務的cpu跑滿(golang實現), 並大量報too many open files錯誤.服務使用systemd來運行,部署在阿裏ecs上.2.分析從日誌來看,cpu的上升主要為到達文件數限

Linux允許打開最大文件句柄數的參數調優-"too many open files"問題

方式 描述 pip lsof 允許 出現 有效 stack awk 都知道Linux系統的特性,一切皆文件,所有在運行zabbix這樣的服務時,其中重要的一個調優就是調整linux系統的最大文件句柄數,解決“too many open files”的問題,增大程序運行允許打

HTTP FAILED: java.net.SocketException: socket failed: EMFILE (Too many open files

場景: 在使用Retrofit進行大量請求時,出現異常 異常: HTTP FAILED: java.net.SocketException: socket failed: EMFILE (Too many open files)  解決方案: 在建立連結時,不要頻繁

IO異常 Too many open files linux處理

這是因為linux限制了開啟檔案的最大控制代碼數量。 linux預設的開啟檔案數量是1024,我們可以用ulimit -a 來檢視系統資源,例如: 也可以通過ulimit -n 檢視 通過ulimit -n 65535 可以臨時設定。 永久的設定的話需要修改配置檔案: 通過

kudu tablet server出現異常退出(Too many open files)

某臺tablet server 在停機一斷時間後,再次啟動,某些tablet server出現異常退出,檢視日誌報錯: 開啟資料檔案 報”Too many open files ” 錯誤。 該錯誤明顯開啟的檔案控制代碼數,超過系統設定的ulimit數。 ulim

錯誤異常too many open files解決方法

一、產生原因 too many open files是Linux系統中常見的錯誤,從字面意思上看就是說程式開啟的檔案數過多,不過這裡的files不單是檔案的意思,也包括開啟的通訊連結(比如socket),正在監聽的埠等等,所以有時候也可以叫做控制代碼(handle),這個錯誤通常也可以叫做控制代

too many open files問題解決辦法

今天用程式碼往liunx中寫檔案,檔案很多程式碼執行一會就日誌上就報錯:“too many open files”。結果找了半天才解決這個問題,現在給大家分享一下。 首先用“ulimit -a”命令看看linux的open files值是多少,結果一隻有1024,不夠用的。然後修改linux