Ускорьте время запуска Weblogic Server

На моей работе мы используем Weblogic Server для размещения корпоративного портала. Что хорошо.

Однако недавно у меня была возможность использовать Tomcat для некоторых побочных проектов, и я поражен невероятной разницей в скорости. Для запуска Tomcat требуется 3–5 секунд, а для развертывания проектов среднего размера — 10–15 секунд. Для запуска Wewblogic требуется 3–5 минут и до 10 минут для развертывания. Это убивает любую итеративную разработку.

Придется ли мне смириться с тем, что он медленный и раздутый, или я могу что-то сделать, чтобы ускорить его? У кого-нибудь есть опыт в этом?


person levand    schedule 10.02.2009    source источник
comment
3-5 минут!? Как грустно   -  person rbp    schedule 19.05.2013


Ответы (8)


Вы не сможете превратить лягушку в принцессу. Я хотел бы немного задаться вопросом о времени запуска для weblogic - оно кажется немного чрезмерным, вы случайно не работаете на Linux?

Если вы используете вложенные архивы (войны внутри ушей и т. д.), а также технологии сканирования каталогов (спящий режим, весна и т. д.), вы можете попробовать распаковать все это в соответствующую развернутую структуру перед развертыванием; известно, что это немного помогает.

Tomcat содержит очень небольшое подмножество функций, которые есть у weblogic. Мы разрабатываем на причале, но развертываем на weblogic для приемочных/производственных сред, и это работает достаточно хорошо. Вы можете сделать то же самое с котом.

Tomcat является довольно строгим контейнером, в то время как weblogic снисходителен, поэтому обычно у вас будут лишь незначительные проблемы с развертыванием в weblogic, особенно если вы постоянно выполняете оба действия.

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

person krosenvold    schedule 10.02.2009
comment
Интересный. Я обязательно загляну в javarebel. К сожалению, я не могу выполнить развертывание на Tomcat или Jetty для разработки... Мы используем Weblogic Portal, который, к сожалению, во многом зависит от остальной части экосистемы BEA и, кажется, задыхается без него. - person levand; 11.02.2009
comment
Вы используете weblogic на Linux? Существует очень непонятная проблема с генерацией случайных чисел в Linux, которая вызывает очень медленное время запуска weblogic. Я могу найти решение, если это так. - person krosenvold; 11.02.2009

Как сказал Кросенволд, генерация случайных чисел может привести к медленному запуску.

Oracle рекомендует использовать один из приведенных ниже флагов -D - только в непроизводственных системах, поскольку это снижает безопасность.

Используйте переключатель -Djava.security.egd=file:///dev/urandom или file:/dev/./urandom для команды, запускающей weblogic.

Приведенная выше информация взята из http://download.oracle.com/docs/cd/E12839_01/doc.1111/e14772/weblogic_server_issues.htm#CIHIIBGJ

Если флаг -D не работает, рассмотрите следующее решение: http://www.itonguard.com/20090313/weblogic-starts-slow/

person Tomas F    schedule 23.09.2009

Вы не указали уровень и платформу, но указали производительность сервера WebLogic и Руководство по настройке содержит ряд советов, которые могут вам помочь.

person rbrayb    schedule 10.02.2009

WebLogic также может медленно запускаться в Linux, если он подключается к базе данных, а вы неправильно настроили DNS.

В зависимости от вашей настройки вы можете отредактировать /etc/resolv.conf и закомментировать строку nameserver. Это может сократить время запуска WebLogic с 20 минут до менее минуты.

person Max    schedule 24.02.2012

Что касается проблемы потребления памяти, вы можете попробовать установить параметры памяти JVM, используемой вашим сервером WebLogic. Войдите в свою веб-консоль администрирования WL и перейдите в раздел «Среда/Серверы/[ваш сервер]/Конфигурация/Запуск сервера» и в «Аргументах», установив что-то вроде -Xms256m -Xmx256m, вы установите начальный (Xms) и максимальный ( Xmx) размер кучи до 256 мегабайт. Вы захотите поиграть с этими числами и найти наилучшие значения для вашей среды. Но имейте в виду, что ваш экземпляр Eclipse также может потреблять много памяти.

Что касается времени запуска, хотя оно немного больше, чем я ожидал, оно кажется нормальным. Эта проблема очень частая, и я не думаю, что вы сможете ее однозначно решить. WebLogic имеет гораздо больше возможностей, чем Tomcat, и это отражается на других характеристиках среды (например, на времени запуска).

Оказывается, Weblogic использует генератор случайных чисел во время запуска. Из-за ошибки в java он читает «случайность» из /dev/random. /dev/random — очень хороший генератор случайных чисел, но он очень медленный. Иногда для генерации одного номера требуется 10 минут или больше. /dev/urandom не так уж хорош, но он мгновенный. Java каким-то образом отображает файл /dev/urandom в /dev/random. Вот почему настройки по умолчанию в $JAVA_HOME/jre/lib/security/java.security бесполезны.

Возможные решения: 1) Добавить «-Djava.security.egd=file:/dev/./urandom» (/dev/urandom не работает) в параметры java.

Хуже, но рабочее решение: 2) mv /dev/random /dev/random.ORIG ; ln /dev/urandom /dev/random

3) Лучшее решение — изменить $JAVA_HOME/jre/lib/security/java.security Заменить securerandom.source на

securerandom.source=файл:/dev/./urandom

Эта проблема не возникает под Windows, потому что используется другая реализация /dev/random.

Запуск сервера weblogic занимает несколько секунд.

person Tatarao Vana    schedule 02.01.2014

Если вы используете мастерскую Weblogic, то вам нужно просто опубликовать, а не перезапускать сервер приложений во время итеративной разработки.

person John Liptak    schedule 26.11.2009

Как предположили Томас Ф. и Кросенволд, это может быть для генератора случайных чисел.

При стандартном запуске Weblogic 12.2.1 я получил следующее сообщение:

Disabling the CryptoJ JCE Provider self-integrity check for better startup performance. 
To enable this check, specify -Dweblogic.security.allowCryptoJDefaultJCEVerification=true

Поэтому я указал его, и время запуска сократилось вдвое. Около 13 секунд на чистом домене.

person rjdkolb    schedule 15.04.2016
comment
он отключил его для лучшей производительности, верно? как получилось, что его включение сократило время !! - person Jason; 15.05.2020

Убедитесь, что длительное время запуска действительно связано с запуском WebLogic Server, а не с временем запуска WebLogic Portal.

person rbp    schedule 09.08.2011