Ускорить время запуска Weblogic Server - PullRequest
22 голосов
/ 10 февраля 2009

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

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

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

Ответы [ 8 ]

18 голосов
/ 10 февраля 2009

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

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

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

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

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

6 голосов
/ 23 сентября 2009

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

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

Используйте -Djava.security.egd = file: /// dev / urandom switch или 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/

4 голосов
/ 11 февраля 2009

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

2 голосов
/ 02 января 2014

Что касается потребления памяти, вы можете попробовать настроить параметры памяти JVM, используемой вашим сервером WebLogic. Войдите в консоль WL Web Admin и перейдите в Environment / Servers / [ваш сервер] / Configuration / Server Start и, в разделе «Аргументы», установите что-то вроде -Xms256m -Xmx256m, чтобы установить начальную (Xms) и максимальную значения вашей JVM ( Хмх) размер кучи до 256 мегабайт. Вы можете поиграть с этими числами и найти лучшие значения для вашей среды. Но учтите, что ваш экземпляр Eclipse может также потреблять много памяти.

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

Оказывается, Weblogic использует генератор случайных чисел во время запуска. Из-за ошибки в java он читает "randomness" из / 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 требуется несколько секунд.

2 голосов
/ 24 февраля 2012

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

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

1 голос
/ 15 апреля 2016

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

При стандартном запуске 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 секунд на чистом домене.

1 голос
/ 26 ноября 2009

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

0 голосов
/ 09 августа 2011

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

...