I have a pipeline running gradle builds. The pipeline is using docker and mysql for services as well as several caches. The pipeline is intermittently running out of java heap space. I'm trying to understand the memory usage/limitations as described here.
When it says "The build container is given 1024 MB of the total memory", is that a hard limit, unaffected by the "size: 2x" setting? If the gradle build step needs to use more than 1gb, what are my options?
It sounds like the 4 or 8GB made available to the pipeline is total memory for the build container plus other docker containers run as services and any DockerInDocker commands - I'm trying to understand how much of that 4/8 GB can be allocated to my Gradle step e.g.:
pipelines:
default:
- step:
script:
- ./gradlew build sonarqube
Update: I am also setting jvm args for gradle in the gradle.properties, e.g.
org.gradle.jvmargs=-Xmx2048m
Hi Jay,
Yes, the 4GB (or 8GB for 2x steps) is the total memory available for your step and is split up between your build container and any services you configure. By default each service gets 1GB, so if you configure 3 services in a 1x step your build container will only have 1GB available. At the other extreme, if you don't configure any services in a 2x step your build container will get the full 8GB. You can also change the amount of memory assigned to each service, which will affect the amount of memory left over for your build container.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.