You've shared threaddumps, for memory related issues a headdump is best.
You can:
- memory usage by going to <host>:<port>/system/console/memoryusage
- Take the heap dumps generated from the same page by clicking “Dump Heap” from the top right.
Then use one of the memory analyzer tools to analyze heap dumps. From your threaddumps, you should check your servlet further 'com.citytechinc.aem.bedrock.core.servlets.ImageServlet.writeLayer'
10.43.32.27 [1566395583229] GET /content/ingredion/emea/findingredients/foodbeverage/Modified_Starch/_jcr_content/par/accordion/accordionpar/colorbox/colorboxpar/columns/parcol1/columns_copy/parcol1/adaptiveimage_copy.img.png HTTP/1.1
priority:5 - threadId:0x00007f0c740c6000 - nativeId:0x4f8c - nativeId (decimal):20364 - state:BLOCKED
stackTrace:
java.lang.Thread.State: BLOCKED (on object monitor)
at sun.awt.image.ByteInterleavedRaster.getByteData(ByteInterleavedRaster.java:453)
at sun.awt.image.ByteInterleavedRaster.getDataElements(ByteInterleavedRaster.java:364)
at sun.awt.image.ByteInterleavedRaster.setDataElements(ByteInterleavedRaster.java:646)
at sun.awt.image.ByteInterleavedRaster.setRect(ByteInterleavedRaster.java:1180)
at com.sun.imageio.plugins.png.PNGImageReader.decodePass(PNGImageReader.java:1176)
at com.sun.imageio.plugins.png.PNGImageReader.decodeImage(PNGImageReader.java:1223)
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1338)
at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1614)
at com.day.image.Layer.<init>(Layer.java:696)
at com.day.image.Layer.<init>(Layer.java:588)
at com.day.image.Layer.<init>(Layer.java:511)
at com.day.cq.commons.ImageHelper.createLayer(ImageHelper.java:173)
at com.day.cq.commons.ImageResource.getLayer(ImageResource.java:638)
at com.citytechinc.aem.bedrock.core.servlets.ImageServlet.writeLayer(ImageServlet.java:65)