I have a number of Bamboo remote agents each with 6GB RAM and 1GB of swap. Our monitoring keep alerting that we have peaks where more than 50% of swap space is being used. Correspondingly monitoring is still showing ~4GB of RAM is free.
I have tried increased the mx value for the Bamboo agent to 2GB of memory, and whilst this has reduced the occurrences the problem persists.
I have added some additional monitoring to look at the JMX value coming out of Java and these seem to confirm that the Java process is not using very much memory. Although why is inconclusive.
Can anyone offer any thoughts or suggestion, or is this to be expected? My gut and reading tell me that swapping is not desirable, although I know some swapping is expected. I am a novice when it comes to Java tuning and curious why the observed activity is taking place.
Hi James,
The memory consumed by the remote agents is not the only one required for building. Remote agents will use external tools in order to perform a build. As an example, checking out the code will be performed by native git (that will create a new git process on the box that will run for the time of the checkout), compiling will use external tools (make, maven, or any other build tool) that will create a temporary child process that will consume the memory necessary for the compilation and will automatically be shut down after the compilation is completed.
If we set up 1GB of heap memory does not mean that the total memory footprint of the agent will be 1GB. The JVM will allocate 1GB for the heap and some additional memory for itself and all the libraries used by the agents (also known as stack memory). This memory depends on the number of plugins that need to be loaded on the remote agents.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.