Улучшение JBoss 5 замедляет запуск

Мы обновили от JBoss 4 (и JDK 5) к JBoss 5 (и JDK 6). Проблема состоит в том, что время начала прошло с 1,5 минут (на JBoss 4) больше чем к 4 минутам.

18:53:35,444 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)] Started in 3m:9s:262ms

Это походит на компонент, который берет JBoss, самое долгое время для инициализации является JMX

18:50:41,926 INFO  [LogNotificationListener] Adding notification listener for logging mbean "jboss.system:service=Logging,type=Log4jService" to server org.jboss.mx.server.MBeanServerImpl@1adc122[ defaultDomain='jboss' ]
18:52:38,797 INFO  [JMXConnectorServerService] JMX Connector server: service:jmx:rmi://lharel2/jndi/rmi://lharel2:1090/jmxconnector

От журнала сервера ОТЛАДКИ я получаю эти строки в проблематичное время:

2009-12-18 18:51:00,886 DEBUG [org.jboss.deployment.MappedReferenceMetaDataResolverDeployer] (main) vfsfile:/C:/QC/Views/QCDev/jboss-5.1.0.GA/server/default/deploy/jmx-console.war/ endpoint mappings:
2009-12-18 18:51:00,886 DEBUG [org.jboss.deployment.MappedReferenceMetaDataResolverDeployer] (main) Processing unit=jmx-console.war, structure: jmx-console.war
2009-12-18 18:52:35,209 DEBUG [org.jboss.deployment.OptAnnotationMetaDataDeployer] (main) Deployment is metadata-complete, skipping annotation processing, ejbJarMetaData=null, jbossWebMetaData=org.jboss.metadata.web.spec.Web23MetaData@1f, jbossClientMetaData=null, metaDataCompleteIsDefault=false

В проекте нет никакого EJB.

Настройки памяти:

 -Xms128m -Xmx512m -XX:MaxPermSize=256m

У Вас есть какая-либо идея, как время начала JBoss может быть улучшено?

Обновление: до сих пор никакая удача, я попробовал предложение shreeni (изменил сканирование xmls). Сервер не работает в режиме отладки, таким образом, предложение MicSim не релевантно

20
задан LiorH 24 December 2009 в 18:16
поделиться

7 ответов

Выстрел в синее небо без дополнительной информации

  • Таймауты сети: 1,5 минутная задержка при развертывании jmx-console.war может указывать на таймаут сети (например, 3 x 30 секунд). Попробуйте запустить JBoss и привязать его к определенному IP-адресу, используя аргумент командной строки -b или системное свойство jboss.bind.address. Также, попробуйте убедиться в правильности настроек хоста и разрешения DNS в вашей системе.

  • JMX также использует RMI, и вы можете захотеть установить RMI имя хоста сервера в качестве системного свойства. На некоторых дистрибутивах Linux, RMI имеет проблемы с поиском правильного имени хоста и jmx-console.war может попытаться подключиться к 'неправильному локальному хосту'. Свойством системы является java.rmi.server.hostname

  • System trace: Если это не помогает, вы можете использовать strace для запуска java-процесса, чтобы увидеть точку, в которой система зависает (если она действительно зависает из-за таймаута сети или что-то в этом роде).

8
ответ дан 30 November 2019 в 01:10
поделиться

Это ужасно большой пробел в журналах. Я предлагаю изменить конфигурацию журнала, чтобы записывать все на уровне DEBUG, а не INFO. Это создаст намного больше записей в журнале, но, надеюсь, поможет вам сузить круг вопросов.

Самый простой способ сделать это - установить системное свойство -Djboss.server.log.threshold = DEBUG при запуске JBoss

4
ответ дан 30 November 2019 в 01:10
поделиться

Я использую JBoss 5.1.0 с Macbook pro (2,26 ГГц, 4 ГБ) без приложений, запускаемых через 54 секунды

15:00:26,449 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 54s:720ms

Я сделал новую конфигурацию на основе «по умолчанию». Источник данных JMS указывает на базу данных Postgres вместо «Гиперзвуковой базы данных» (в базе данных памяти)

0
ответ дан 30 November 2019 в 01:10
поделиться

Я полагаю, вы запускаете режим отладки. Этот режим может быть в 3 раза медленнее обычного. Но также может возникнуть проблема при переходе с JDK5 на JDK6. Я нашел это решение здесь в сети:

Я решил это. Это проблема отладки. Я изменил свои настройки отладки с:

 wrapper.java.additional.26 = -Xdebug
wrapper.java.additional.27 = -Xnoagent
wrapper.java.additional.28 = -Djava.compiler = НЕТ
wrapper.java.additional.27 = -Xrunjdwp: transport = dt_socket, address = 7199, server = y, suspend = n

в:

 wrapper.java.additional.26 = -Xdebug
wrapper.java.additional.27 = -Xrunjdwp: transport = dt_socket, address = 7199, server = y, suspend = n

и JBoss снова становится быстрым.

Надеюсь, это поможет.

0
ответ дан 30 November 2019 в 01:10
поделиться

Нужно ли консольное приложение JMX? Прагматично было бы распаковать его с сервера, для этого все равно можно было бы использовать jconsole или jvisualvm.

.
0
ответ дан 30 November 2019 в 01:10
поделиться

Вы можете обратиться к этой ссылке , чтобы избежать ненужного сканирования примечаний, которое может ускорить запуск вашего сервера

.
1
ответ дан 30 November 2019 в 01:10
поделиться

Ваше подозрение на JMX-консоли можно вводить в заблуждение. Могут быть другие компоненты, выполняющие работу на заднем плане, не связанном с jmx-консолью. По моему опыту у нас возникла проблема, на которой появился небольшой военный файл, чтобы занять 3 минуты! Это было невинно. Винприт был частично из-за файла уха со многими войнами и банками.

В то время как я не эксперт, я бы предположил следующее:

  1. Попробуйте включить вслепую в след. Делая это, я был свидетелем одного из развертывателей (EJBDOPLOPLER, я думаю) излишне сканирующих войны в одном из наших ушей. Затем я вручную отключил сканирование этих файлов War.
  2. Запустите Wireshark во время запуска. Я обнаружил, что некоторые файлы войны висит во время ожидания ответа от внешнего запроса DTD. Эти веб-сайты были в настоящее время не существуют, либо не будут должным образом служить файлами DTD для программ на основе Java. Я мог бы ускорить его, либо имея программисты, используя локальные файлы DTD, либо отражают эти DTD на местном уровне и имеющие / etc / host loopback на месте.
3
ответ дан 30 November 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: