Spring Boot запускается медленно после обновления - PullRequest
5 голосов
/ 28 мая 2020

Недавно я обновил одно из своих приложений Spring Boot с 2.1.3-RELEASE до 2.3.0-RELEASE, а также обновил версии Hibernate с 5.3.6.Final до 5.4.15.Final.

Все прошло нормально, однако теперь, когда приложение запускается на сервере, его запуск занимает от 800 до 900 секунд (примерно 15 минут), тогда как раньше это занимало всего 30 секунд.

Что-то Важно отметить, что при запуске на локальном хосте, как с 2.1.3, так и с 2.3.0, запуск приложения был одинаковым, около 12-15 секунд.

Проблема медленного запуска возникает только при развертывании на сервере.

Я уверен, что проблема связана с новой версией Spring Boot, поскольку я переключился на SpringBoot 2.1.3 и оставил Hibernate как 5.4.15, и запуск был быстрым.

Итак, что-то изменилось в последних выпусках SpringBoot, где я должен установить свойство для отключения определенных проверок или чего-то еще?

В большинстве статей и сообщений, которые я видел, говорилось, что проблема связана с Hibernate и чтобы установить это свойство spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false, но я сделал это, и это не повлияло.

ОБНОВЛЕНИЕ:

Я пробовал свойство spring.main.lazy-initialization=true, но оно не повлияло на производительность при запуске.

ОБНОВЛЕНИЕ 2:

Я понизил версию 2.3.0 до 2.2.7, в результате чего время запуска в среднем составляло 170 секунд, по сравнению со средним временем запуска 800 секунд с 2.3.0. Примерно 3-х минутное время запуска по-прежнему ужасно, но, с разницей в 12 минут без каких-либо изменений, кроме версий, мне интересно, не слишком ли это амбициозно, чтобы быть в последней версии Spring Boot.

Все еще очень любопытно, есть ли у кого-нибудь предложения о том, почему мы перешли с 30-секундного времени старта с 2.1.3 на 3-минутное время старта с 2.2.7.

* 1026 2.2.x?

ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ

Я попробовал версию 2.2.5, которая не привела к снижению производительности при запуске по сравнению с 2.1.3. Во всяком случае производительность запуска увеличилась. Итак, это наводит меня на мысль, что что-то изменилось под капотом с версиями 2.2.6 и выше.

Я собираюсь придерживаться версии 2.2.5, но все еще надеюсь на ответ, если кто-нибудь пытался использовать эти самые последние версии Spring Boot.

1 Ответ

0 голосов
/ 29 мая 2020

Я столкнулся с той же проблемой при обновлении с весенней загрузки 2.2.6 до 2.3.0. Я наблюдаю более медленное время запуска приложения при запуске приложения весенней загрузки на сервере или в контейнере docker и не вижу проблемы с локальным запуском как на win, так и на ma c.

Я из любопытства взял spring-petclini c и пробовал запустить его docker. Это время начала, когда я с этим справляюсь.

С Spring Boot 2.3.0

2020-05-29 15:33:28.957  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 22.723 seconds (JVM running for 24.397)
2020-05-29 15:41:08.278  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 22.955 seconds (JVM running for 24.641)
2020-05-29 15:42:20.741  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 24.847 seconds (JVM running for 26.534)
2020-05-29 15:43:28.472  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 24.645 seconds (JVM running for 26.294)
2020-05-29 15:43:58.152  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 23.931 seconds (JVM running for 25.609)
2020-05-29 15:44:30.186  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 24.708 seconds (JVM running for 26.608)

С Spring Boot 2.2.6

2020-05-29 15:40:25.829  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 19.062 seconds (JVM running for 20.474)
2020-05-29 15:41:35.797  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 18.18 seconds (JVM running for 19.582)
2020-05-29 15:48:36.693  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 18.648 seconds (JVM running for 20.067)
2020-05-29 15:49:00.379  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 18.548 seconds (JVM running for 19.978)
2020-05-29 15:49:23.282  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 18.808 seconds (JVM running for 20.218)
2020-05-29 15:49:47.100  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 19.862 seconds (JVM running for 21.285)
2020-05-29 15:50:08.247  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 16.599 seconds (JVM running for 17.916)

Интересно, что изменилось в этой области ...

На удивление весенний ботинок 2.3.1 выглядит лучше, почти как 2.2.x:

2020-06-19 21:16:18.935  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 18.886 seconds (JVM running for 20.552)
2020-06-19 21:16:43.461  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 18.637 seconds (JVM running for 20.091)
2020-06-19 21:17:07.226  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 18.526 seconds (JVM running for 20.007)
2020-06-19 21:17:30.172  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 19.694 seconds (JVM running for 21.209)
2020-06-19 21:17:57.662  INFO 1 --- [           main] o.s.s.petclinic.PetClinicApplication     : Started PetClinicApplication in 20.348 seconds (JVM running for 21.85)

Предлагаю попробовать 2.3.1.

...