Spring JPA занимает слишком много времени и памяти для вставки данных в базу данных postgres - PullRequest
0 голосов
/ 01 марта 2019

Я работаю над подпружиненным приложением (с 2 ГБ памяти) и пытаюсь обработать данные (использовал выборочные запросы для получения данных во время обработки) и вставляю около 1 миллиона обработанных записей в базу данных postgres.Я использую Spring Data JPA для этого проекта.Но Spring JPA потребляет слишком много памяти при обработке этих записей, и, наконец, я получил исключение из памяти.Я подозревал, что создано слишком много объектов, которые не были очищены.Поэтому я попытался очистить entityManager после определенных вызовов БД, но это не помогло.Как я могу уменьшить потребление памяти JPA?Любые предложения по снижению потребления памяти будут высоко оценены.

1 Ответ

0 голосов
/ 03 марта 2019

Возможные причины

  • Количество HTTP-потоков (по умолчанию запускается около 50 потоков, но вы можете увеличивать / уменьшать с помощью свойства количество необходимых потоков)
  • Статические переменные
  • Использование кэша (memcache, ehcache и т. Д.)
  • Cascade Persist
  • Пакетная запись

server.tomcat.max-threads=5

Это ограничит количество потоков обработчика HTTP-запросов 1 (по умолчанию 50) в вашем application.properties

Для получения подробной информации вы должны обратиться к R1 R2 R3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...