![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
revelc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 9.5.2008 Репутация: нет Всего: нет |
Вобщем суть проблемы такова есть машина на ней 1gb памяти стоит tomcat 5.5 система ubuntu 7.10
tomcat работает приблизительно 12 часов после этого случается ужасное.1. Вываливается ошибка: В настройках tomcat прописано JAVA_OPTS="-Djava.awt.headless=true -Xmx512M" Давно ищу решение проблемы не могу найти Как вариант думал сделать рестарт tomcat через crontab каждые 3 часа не получается почемуто 2. Вываливается ошибка: 1. Вываливается ошибка: java.lang.OutOfMemoryError: Java heap space at sun.util.resources.TimeZoneNamesBundle.createMap(TimeZoneNamesBundle.java:77) at sun.util.resources.OpenListResourceBundle.loadLookup(OpenListResourceBundle.java:110) at sun.util.resources.OpenListResourceBundle.loadLookupTablesIfNecessary(OpenListResourceBundle.java:97) at sun.util.resources.OpenListResourceBundle.handleGetObject(OpenListResourceBundle.java:58) at sun.util.resources.TimeZoneNamesBundle.handleGetObject(TimeZoneNamesBundle.java:59) at java.util.ResourceBundle.getObject(ResourceBundle.java:378) at java.util.ResourceBundle.getObject(ResourceBundle.java:381) at java.util.ResourceBundle.getStringArray(ResourceBundle.java:361) at sun.util.TimeZoneNameUtility.retrieveDisplayNames(TimeZoneNameUtility.java:100) at sun.util.TimeZoneNameUtility.retrieveDisplayNames(TimeZoneNameUtility.java:81) at java.util.TimeZone.getDisplayNames(TimeZone.java:399) at java.util.TimeZone.getDisplayName(TimeZone.java:350) at java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1093) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:882) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:852) at java.text.DateFormat.format(DateFormat.java:316) at org.apache.tomcat.util.http.FastHttpDateFormat.getCurrentDate(FastHttpDateFormat.java:110) at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1595) at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:967) at org.apache.coyote.Response.action(Response.java:181) at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:573) at org.apache.coyote.Response.doWrite(Response.java:560) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432) at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314) at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:278) at org.apache.catalina.connector.Response.finishResponse(Response.java:484) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:154) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at java.util.ResourceBundle.getStringArray(ResourceBundle.java:361) at sun.util.TimeZoneNameUtility.retrieveDisplayNames(TimeZoneNameUtility.java:100) at sun.util.TimeZoneNameUtility.retrieveDisplayNames(TimeZoneNameUtility.java:81) at java.util.TimeZone.getDisplayNames(TimeZone.java:399) at java.util.TimeZone.getDisplayName(TimeZone.java:350) at java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1093) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:882) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:852) at java.text.DateFormat.format(DateFormat.java:316) at org.apache.tomcat.util.http.FastHttpDateFormat.getCurrentDate(FastHttpDateFormat.java:110) at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1595) at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:967) at org.apache.coyote.Response.action(Response.java:181) at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:573) at org.apache.coyote.Response.doWrite(Response.java:560) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432) at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314) at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:278) at org.apache.catalina.connector.Response.finishResponse(Response.java:484) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:154) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) java.lang.OutOfMemoryError: Java heap space Как вариант думал сделать рестарт tomcat через crontab каждые 3 часа не получается почемуто 2. Вываливается ошибка: 2. Вываливается ошибка: 08.05.2008 6:13:18 org.apache.coyote.http11.Http11BaseProtocol start SEVERE: Error starting endpoint java.net.BindExc$ May 8 06:13:18 mail jsvc.exec[31870]: eflect.Method.invoke(Method.java:597) ^Iat org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) ^Iat sun.r$ May 8 06:13:19 mail jsvc.exec[31870]: 08.05.2008 6:13:18 org.apache.catalina.startup.Catalina start SEVERE: Catalina.start: LifecycleException: service.g$ May 8 06:13:19 mail jsvc.exec[31870]: reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ^Iat java.lang.reflect.Method.invok$ May 8 06:13:19 mail jsvc.exec[31870]: 08.05.2008 6:13:19 org.apache.catalina.startup.Catalina start INFO: Server startup in 6555 ms May 8 06:19:01 mail jsvc.exec[31870]: 08.05.2008 6:19:01 org.apache.coyote.http11.Http11BaseProtocol pause INFO: Pausing Coyote HTTP/1.1 on http-8180 08.05$ May 8 06:19:01 mail jsvc.exec[31870]: .reflect.NativeMethodAccessorImpl.invoke0(Native Method) ^Iat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMetho$ May 8 06:19:02 mail jsvc.exec[31870]: 08.05.2008 6:19:02 org.apache.catalina.core.StandardService stop INFO: Stopping service Catalina May 8 06:19:03 mail jsvc.exec[31870]: 08.05.2008 6:19:03 org.apache.catalina.connector.MapperListener destroy WARNING: Error unregistering MBeanServerDeleg$ May 8 06:19:03 mail jsvc.exec[31870]: t sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ^Iat java.lang.reflect.Method$ May 8 06:19:03 mail jsvc.exec[31870]: 08.05.2008 6:19:03 org.apache.coyote.http11.Http11BaseProtocol destroy INFO: Stopping Coyote HTTP/1.1 on http-8180 May 8 06:19:03 mail jsvc.exec[31870]: 08.05.2008 6:19:03 org.apache.catalina.connector.Connector stop SEVERE: Coyote connector has not been started May 8 06:19:03 mail jsvc.exec[31870]: 08.05.2008 6:19:03 org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: Failed shutdown of Apache Porta$ May 8 06:19:09 mail jsvc.exec[32016]: java.lang.UnsupportedClassVersionError: org/apache/catalina/startup/Bootstrap (Unsupported major.minor version 49.0) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat java.lang.ClassLoader.defineClass0(Native Method) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat java.lang.ClassLoader.defineClass(ClassLoader.java:539) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat java.net.URLClassLoader.defineClass(URLClassLoader.java:251) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat java.net.URLClassLoader.access$100(URLClassLoader.java:55) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat java.net.URLClassLoader$1.run(URLClassLoader.java:194) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat java.security.AccessController.doPrivileged(Native Method) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat java.net.URLClassLoader.findClass(URLClassLoader.java:187) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat java.lang.ClassLoader.loadClass(ClassLoader.java:289) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat java.lang.ClassLoader.loadClass(ClassLoader.java:235) May 8 06:19:09 mail jsvc.exec[32016]: ^Iat org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:107) May 8 06:19:09 mail jsvc.exec[32016]: Cannot load daemon Помогите не знаю че делать |
|||
|
||||
Kangaroo |
|
|||
![]() AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 14 Всего: 104 |
Надо разобраться, что кушает память, а потом не отпускает ее. Может JConsole такое позволяет, попробуй. -------------------- Lost.... |
|||
|
||||
Aoli |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.1.2007 Репутация: -1 Всего: 0 |
Это известная утечка памяти в sun jvm из-за ошибки в класслоадере.
У нас после 12ти дневной работы сервера с 4мя гигами памяти под sun jvm 1.5.0_11 кончалась память. Рекомендую попробовать другую jvm, например jikes или от ibm. Мы перешли на jikes, хоть он и платный. Сервер тьфу-тьфу-тьфу 3ий месяц работает. |
|||
|
||||
Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: 4 Всего: 6 |
revelc, дебажить не пробовали? Как сказали выше смотрите через JConsole .
Aoli, это теперь на всех sun jvm 1.5.0_11 через 12 дней память кончается ![]() -------------------- Thank you opensource. |
|||
|
||||
Aoli |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 24.1.2007 Репутация: -1 Всего: 0 |
Zamuta, если постоянно загружаются Коллекции сервер стоит под хорошей нагрузкой, то да.
Прежде чем говорить о кривости чьего-то кода в следующий раз рекомендую подумать и почитать что-нибудь по теме, например http://blogs.sun.com/fkieviet/entry/classl...he_dreaded_java и http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6287811 . |
|||
|
||||
sidslog |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 25.10.2006 Где: Москва Репутация: нет Всего: нет |
||||
|
||||
revelc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 9.5.2008 Репутация: нет Всего: нет |
Огромное спасибо за отзывы ао теме вобщем на счет кривости кода могусказать что он не идеален но могу сказать точно что утечка памяти происходит походу в самой jvm sun к стати вот что еще помогает на некоторое время такая фича только ее очень сложно пробить когда надо вставлять если код огромный .Нужно найти в каком месте произошла ошибка и сделать в этом месте try где в catch написать system.gs(); -принудительно запустить сборщик мусора.
Еще вот что пришлось сделать в ubuntu 7.10 tomcat из репозитория еще просит устоновить tomcat-webapps -вот собственно изза етого у меня его и не получалось рестартовать через cron я откатил томкат до 5 версии и все сразу заработало рестарт каждые 3 часа. Если у кого получилось победить java.lang.OutOfMemoryError: Java heap spac напишите как плиз . И вам точно поставят памятник при жизни. |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 24 Всего: 62 |
revelc
Dump смотреть пробовали, через HeapAnalyzer? Полезная инфа по теме: HeapAnalyzer Overview, Using IBM HeapAnalyzer to analyze Java heap usage and detect possible Java heap leak. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |