The Java Service Wrapper (Tanuki) starts the JVM that hosts on-premises Mule runtime engine. Set heap, Metaspace, and startup timeouts in $MULE_HOME/conf/wrapper.conf. Restart the runtime after you change this file.
Heap isn’t the full RAM of the host. Leave memory for the operating system and for Metaspace, which is a separate pool. Don’t set wrapper.java.maxmemory equal to the host RAM. The CloudHub vCore model doesn’t apply on-premises.
Use the wrapper memory properties, not a mix of those properties and -Xms/-Xmx additional lines, so one setting doesn’t silently override the other:
wrapper.java.initmemory=1024
wrapper.java.maxmemory=2048
Those values are megabytes and map to -Xms and -Xmx. To cap Metaspace, add an unused wrapper.java.additional.<n> index:
wrapper.java.additional.<n>=-XX:MaxMetaspaceSize=512m
If two additional properties share the same <n>, the wrapper keeps one and ignores the other. Don’t edit wrapper-additional.conf; the runtime regenerates that file.
If startup fails with Timed out waiting for signal from JVM, increase wrapper.startup.timeout in wrapper.conf (seconds). The wrapper kills and can restart the JVM when Pinging the JVM took persists; fix heap, CPU, and GC before raising ping timeouts.