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 is not the full RAM of the host. Leave memory for the operating system and for Metaspace, which is a separate pool. Do not set wrapper.java.maxmemory equal to the host RAM. The CloudHub vCore model does not apply on-premises.
Use the wrapper memory properties, not a mix of those properties and -Xms/-Xmx additional lines, so one setting does not 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. Do not 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.