2014-10-26 3 views
-2

Прежде чем вы прочитаете это, позвольте мне сказать вам, что, пожалуйста, не отвечайте, что это повторяется или проверяйте эту ссылку или другую. Я знаю, и я проверил множество ссылок и предложений, но все же вам нужно также взглянуть на это. что делает рассказ коротким:OutOfMemory - Ошибка создания собственной нити

ENV: java 32 bit 1.6 update 38 jboss 5.1. GA RAM на сервере 8 ГБ JAVA_OPTS = -Xms256m -Xmx1024M

исследование: нагрузка на сервер (звонки веб-службы) увеличилось, и мы начали видеть это с тех пор.

журнала сервер показывает ниже исключения: Вызванный: java.lang.OutOfMemoryError: не удалось создать новую встроенную нить

а также иногда: 2014-10-03 10: 33: 45,200 ОШИБКИ [STDERR] (АВТ-Windows) java.lang.OutOfMemoryError: OutOfMemoryError

нАБЛЮДЕНИЯ в ТЕЧЕНИЕ последних трех дней:

мониторинг производительности памяти ОС: фиксации памяти увеличивается медленно

Данные jvisualvm: Отсутствие проблемы с кучей пространства, GC выполняет свою работу должным образом, поэтому я не вижу там никакой утечки. thread dump показывает много потоков WAIT! Я отследил наши пакеты приложений в дампе кучи и не нашел большой проблемы (до сих пор следят), но я думаю, что мы не правильно управляем потоками.

Число потоков после перезапуска jboss увеличивается с 50 до 260 потоков и никогда не уменьшается даже в режиме ожидания, когда на сервере нет активности. мне кажется странным.

использование кучи до 400 Мб, которая является путь меньше, чем макс 1024 MV

Теперь я надеюсь, очень надеюсь, кто-то может вести меня через это и помочь мне решить. что я думаю, что стек небольшой? или наше приложение неправильно обрабатывает потоки.

Вы могли бы помочь мне? спасибо.

+0

Сколько потоков вы создали? – SMA

+0

Я добрался до «до того, как вы прочитаете это, позвольте мне сказать вам, что, пожалуйста, не отвечайте», а затем остановился, когда вы, по-видимому, не хотите ответа. –

+0

не поймите меня неправильно :) и не интерпретируйте это плохо, пожалуйста. Мне нужны ответы, но я хотел бы упомянуть, что видел много страниц, и я много гугнул. –

ответ

1

Кажется, что вы создаете огромные потоки, а там превышены ограничения по потокам (короче, для процесса, который может возникнуть процесс, может возникнуть нехватка собственной памяти для создания дополнительных потоков). Пожалуйста, см. http://java.dzone.com/articles/outofmemoryerror-unable-create для более подробной информации.

+0

260 родных потоков не так много. –

+0

Я действительно смотрел на него раньше, и я считаю, что мой случай - это третий сценарий, но все же мне нужно некоторое решение. это где-то в моем коде? или я все еще могу играть с env varibles? как размер кучи, размер стека, и если да, то где? и какой файл ... –

+0

Это на Unix/Windows? Также он воспроизводится? – SMA

Смежные вопросы