У меня есть небольшая проблема. Я создаю приложение Java Spring, но когда я пытаюсь запустить его в Azure Kubernetes Service (AKS) с помощью Docker, оно, похоже, использует много системных ресурсов (ОЗУ, ЦП являются основными соображениями). Помимо самого Spring, код довольно легкий, поэтому я не понимаю, почему он использует так много системных ресурсов. Есть ли у меня какие-либо рекомендации по сокращению использования системных ресурсов моего приложения Java Spring?
Цель приложения - облегченный CRUD-сервис поверх базы данных MongoDB. Уровень взаимодействия с БД использует Spring Data или Morphia для прямых операций с БД (более старые приложения используют Morphia, более новые разработки используют Spring Data, в некоторых местах с QueryDSL).
В частности, метрикой, с которой я сравниваю, является NodeJS, поэтому я бы хотел, чтобы мое Java-приложение работало на уровне, сопоставимом с Node-приложением аналогичного размера / области действия.
Спасибо!
Dockerfile (некоторые параметры отредактированы):
FROM openjdk:8-jre-alpine
RUN mkdir /[redacted]
ADD *.jar /[redacted]
ENV JVM_OPTS="-Xmx256M"
ENV JVM_ARGS="-Dspring.profiles.active=[redacted]"
EXPOSE 8080
ENTRYPOINT [ "sh", "-c", "java $JVM_ARGS $JVM_OPTS -jar /[redacted]" ]
Единственное, что делает параметр профиля Spring, это устанавливает набор настроек, необходимых для бизнес-логики приложения. Это ничего не устанавливает для JVM.