ATM10 Optimization: The Best JVM Arguments for All The Mods 10

Published on

Tested JVM arguments specifically for All The Mods 10 servers. Includes memory allocation, garbage collection tuning, and startup flags that actually make a difference.

Written by Jochem, Infrastructure Expert, 5-10 years experience in game server hosting, VPS infrastructure, and 24/7 streaming solutions. Read author bio →

All The Mods 10 is one of the heaviest modpacks you can run on a Minecraft server. With 400+ mods, Java's memory management becomes the single biggest factor in whether your server runs smoothly or becomes a slideshow every 30 seconds.

The default JVM arguments that most hosting panels set are generic. They work for vanilla Minecraft, but ATM10 needs specific tuning. Here are the arguments we've tested and verified on our Ryzen 9 hardware.

The Recommended ATM10 JVM Arguments

-Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled 
-XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions 
-XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 
-XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M 
-XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 
-XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 
-XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 
-XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1

Let me break down what each group does and why it matters for ATM10 specifically.

Memory Allocation: -Xms and -Xmx

-Xms8G -Xmx8G

Setting both minimum and maximum to the same value prevents Java from constantly resizing the heap. For ATM10, 8GB is the minimum for up to 5 players. If you're running 10+ players, use 12GB or 16GB.

Player CountMinimum RAMRecommended RAMSpace-Node Plan
1-58GB10GBMC Special 2 (12GB)
5-1010GB12GBMC Special 2 (12GB)
10-2012GB16GBMC Professional+ (16GB)
20+16GB24GB+MC Expert (24GB)

Never set -Xmx higher than your actual available RAM minus 2GB (for the OS and JVM overhead).

Garbage Collection: G1GC Settings

ATM10 creates enormous amounts of short-lived objects. Every mod that processes items, updates machines, or renders effects generates garbage that Java needs to clean up. The G1 garbage collector is the best choice for modded Minecraft.

-XX:MaxGCPauseMillis=200 tells G1GC to target garbage collection pauses under 200 milliseconds. This prevents the 1-2 second freezes that kill TPS during heavy automation.

-XX:G1NewSizePercent=30 and -XX:G1MaxNewSizePercent=40 allocate more memory to the "young generation" where short-lived objects live. ATM10 mods create tons of these, so a larger young generation means fewer expensive "full GC" events.

-XX:G1HeapRegionSize=8M increases the region size for better handling of large allocations, which modded Minecraft produces frequently.

Pre-Touch and Explicit GC

-XX:+AlwaysPreTouch -XX:+DisableExplicitGC

AlwaysPreTouch tells Java to map all allocated memory at startup instead of lazily. This adds 10-15 seconds to boot time but eliminates memory allocation stutters during gameplay.

DisableExplicitGC prevents mods from calling System.gc() manually, which would cause unnecessary full garbage collection pauses.

What About ZGC or Shenandoah?

We tested both alternative garbage collectors with ATM10. Results were mixed:

GCAverage TPSGC Pause (avg)GC Pause (peak)Memory Overhead
G1GC (tuned)19.485ms210msBaseline
ZGC18.812ms45ms+15%
Shenandoah18.618ms80ms+12%

ZGC has lower pause times but slightly worse throughput. For ATM10, the G1GC tuning above gives the best overall TPS. ZGC is worth trying if you notice stutter but your average TPS is fine.

Server Properties That Matter

Beyond JVM arguments, these server.properties settings make a big difference for ATM10:

view-distance=8
simulation-distance=6
max-tick-time=120000

Keep view distance at 8 or lower. ATM10's worldgen is expensive, and rendering 10+ chunks per player will tank your TPS. Simulation distance at 6 keeps modded machines working in loaded chunks without overloading the server.

Set max-tick-time to 120000 (2 minutes) to prevent the server from crashing during heavy world generation or initial loading.

Testing Your Configuration

After setting these arguments, use Spark profiler to monitor performance:

/spark tps
/spark profiler start --timeout 300

Run the profiler for 5 minutes during normal gameplay and check the results. If you see GC pauses over 500ms regularly, increase your heap size. If TPS drops below 18 during automation, you may need a higher-tier hosting plan with more allocated RAM and CPU resources.

The combination of proper JVM arguments and Ryzen 9 7950X3D hardware is what makes ATM10 playable at scale. Generic hosting with default arguments simply can't keep up with 400+ mods.

Jochem

About the Author

Jochem, Infrastructure Expert, expert in game server hosting, VPS infrastructure, and 24/7 streaming solutions with 5-10 years experience.

Since 2023
500+ servers hosted
4.8/5 avg rating

I specialize in Minecraft, FiveM, Rust, and 24/7 streaming infrastructure, operating enterprise-grade AMD Ryzen 9 hardware in Netherlands datacenters.

View my full bio and credentials →

Start Your MC Server Now Today

Join content creators worldwide who trust our Minecraft infrastructure. Setup is instant and support is always available. Start from €0.90/mo (Dirt) or €2.70/mo (Coal) and go live in minutes.

ATM10 Optimization: The Best JVM Arguments for All The Mods 10