Всем здравствуйте! Ситуация такая. Сегодня ночью упал наш java-сайт. Симптомы были такие: при попытке запросить любую страницу tomcat очень долго пытался ее загрузить, и страницу так и не отдавал. В логах (catalina.out и прочие) ничего при этом не писалось. Сделал дамп потоков в это время: 214 разных потоков ждали лок <0x00002aaab9e0c260> в состоянии BLOCKED. Поток, который забрал этот лок залип в состоянии RUNNABLE на операции java.util.LinkedHashMap.createEntry. Вот этот поток: | Код | "http-8080-Processor536" daemon prio=10 tid=0x00002aabbe780400 nid=0x7d3e runnable [0x0000000051d43000..0x0000000051d44d20] java.lang.Thread.State: RUNNABLE at java.util.LinkedHashMap.createEntry(Unknown Source) at java.util.LinkedHashMap.addEntry(Unknown Source) at java.util.HashMap.put(Unknown Source) at net.sf.ehcache.store.MemoryStore.put(MemoryStore.java:107) - locked <0x00002aaab9e0c3f0> (a net.sf.ehcache.store.LruMemoryStore) at net.sf.ehcache.Cache.put(Cache.java:569) - locked <0x00002aaab9e0c260> (a net.sf.ehcache.Cache) at net.sf.ehcache.Cache.put(Cache.java:522) at org.hibernate.cache.EhCache.put(EhCache.java:120) at org.hibernate.cache.StandardQueryCache.put(StandardQueryCache.java:81) at org.hibernate.loader.Loader.putResultInQueryCache(Loader.java:2119) at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2063) at org.hibernate.loader.Loader.list(Loader.java:2021) at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:95) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1562) at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283) at net.liga.persistence.dao.NewsDao.updateList(NewsDao.java:597) at net.liga.persistence.dao.NewsDao.find(NewsDao.java:396) at net.liga.rss.RssGenerator.getItemsList(RssGenerator.java:283) at net.liga.rss.RssGenerator.getChannel(RssGenerator.java:172) at net.liga.rss.RssGenerator.generateRss(RssGenerator.java:128) at net.liga.rss.RssGeneratorServlet.doGet(RssGeneratorServlet.java:55) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Unknown Source)
|
Вот информация о хипе из дампа потоков: | Цитата | Heap PSYoungGen total 947840K, used 665728K [0x00002aab622f0000, 0x00002aabaeb10000, 0x00002aabb7840000) eden space 665728K, 100% used [0x00002aab622f0000,0x00002aab8ad10000,0x00002aab8ad10000) from space 282112K, 0% used [0x00002aab9c830000,0x00002aab9c830000,0x00002aabadbb0000) to space 289920K, 0% used [0x00002aab8ad10000,0x00002aab8ad10000,0x00002aab9c830000) PSOldGen total 2796224K, used 2796222K [0x00002aaab7840000, 0x00002aab622f0000, 0x00002aab622f0000) object space 2796224K, 99% used [0x00002aaab7840000,0x00002aab622ef9c0,0x00002aab622f0000) PSPermGen total 112704K, used 112401K [0x00002aaaae240000, 0x00002aaab5050000, 0x00002aaab7840000) object space 112704K, 99% used [0x00002aaaae240000,0x00002aaab50047d8,0x00002aaab5050000)
|
Здесь видно, что OldGen и PermGen использованы на 99%, при этом в лог так и не выдавалось никаких ошибок (ни OutOfMemory, ни PermGen space error, ничего). Полный стекдамп приложен в аттачменте. Используемые технологии: | Цитата | Java 6u1 Tomcat 5.5.20 SuSe Linux 10.1
|
Помогите пожалуйста разобраться, что произошло! И как устранить, чтобы больше это не повторялось... Заранее большое спасибо!
Присоединённый файл ( Кол-во скачиваний: 4 )
stackdump070614.zip 51,25 Kb
|