Подтвердить что ты не робот

Ускорение времени запуска Weblogic Server

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

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

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

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

Ответ 5

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

Ответ 6

В случае проблемы с потреблением памяти вы можете попробовать установить параметры памяти JVM, используемые сервером WebLogic. Войдите в свою консоль веб-администратора WL и перейдите в раздел "Окружающая среда/серверы/[ваш сервер]/" Конфигурация/сервер ", а в" Аргументах "установка чего-то типа -Xms256m -Xmx256m установит начальную (Xms) и максимальную (JMS) 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 = файл:/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

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

Теперь нужно запустить веб-сервер.

Ответ 7

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

Ответ 8

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

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