Вы можете попробовать включить привод и сравнить значения потребления памяти со значениями, сгенерированными статистикой Docker.
, чтобы включить привод, вы можете добавить следующую зависимость в ваш файл pom.xml.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Обычно я использую HAL-браузер для мониторинга приложения и использования конечных точек привода.Вы можете добавить это, используя следующую зависимость maven.
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-browser</artifactId>
</dependency>
В браузере HAL вы можете попробовать использовать конечную точку /metrics
для вашего приложения.
Пример вывода будет выглядеть следующим образом.
{
"mem" : 193024,
"mem.free" : 87693,
"processors" : 4,
"instance.uptime" : 305027,
"uptime" : 307077,
"systemload.average" : 0.11,
"heap.committed" : 193024,
"heap.init" : 124928,
"heap.used" : 105330,
"heap" : 1764352,
"threads.peak" : 22,
"threads.daemon" : 19,
"threads" : 22,
"classes" : 5819,
"classes.loaded" : 5819,
"classes.unloaded" : 0,
"gc.ps_scavenge.count" : 7,
"gc.ps_scavenge.time" : 54,
"gc.ps_marksweep.count" : 1,
"gc.ps_marksweep.time" : 44,
"httpsessions.max" : -1,
"httpsessions.active" : 0,
"counter.status.200.root" : 1,
"gauge.response.root" : 37.0
}
таким образом вы можете отслеживать производительность памяти вашего приложения и узнавать, сколько памяти фактически использует ваше приложение.Если это аналогично отчету, сгенерированному Docker, то это проблема вашего кода.
Однако я должен сказать, что использование исполнительного механизма не является дружественным к производственным процессам, поскольку само по себе требует значительных ресурсов.