Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove recommendation of the Aikars flags #121

Open
wants to merge 1 commit into
base: 1.20
Choose a base branch
from

Conversation

LemmaEOF
Copy link

The Aikars flags are old and outdated. Using them on Java 17 and 21 does users a massive disservice, as they are built around the archaic G1 garbage collector. Shenandoah on Java 17 and Generational ZGC on Java 21 are significantly more performant, with GenZGC providing sub-millisecond maximum GC pauses.

@YouHaveTrouble
Copy link
Owner

ZGC is hit or miss depending on the hardware setup. Aikar's flags are a popular standard, because they work good enough for over 90% of servers out of the box without the need of tweaking anything.

@LemmaEOF
Copy link
Author

ZGC is hit-or-miss if it's not generational - GenZGC is excellent pretty much universally. On the other hand, some of the Aikars flags are massive footguns which are liable to make things way less stable.

@YouHaveTrouble
Copy link
Owner

Those are bold claims with no evidence provided. Benchmarks would need to be done on most hardware, old and new to even consider changing this.

@Pantera07
Copy link
Contributor

Which is better depends on hardware.

@brianewell
Copy link

Any recommendations on a benchmarking suite to test for this?

@YouHaveTrouble
Copy link
Owner

Not really, as benchmarking minecraft itself is not realistically possible as it's not deterministic enough.
You would need similar workload. set amount of operations within x amount of time, just like server ticking.

You would also have to cover insane amount of hardware configurations. from desktop cpus to old xeons, because most people use crappy hosts that provide those old server cpus.

@brianewell
Copy link

brianewell commented May 5, 2024

So what evidence would the OP need to provide, as you've requested, to support their claim?

@YouHaveTrouble
Copy link
Owner

You would need similar workload. set amount of operations within x amount of time, just like server ticking.

You would also have to cover insane amount of hardware configurations. from desktop cpus to old xeons, because most people use crappy hosts that provide those old server cpus.

@ChrisTVH
Copy link

The Aikars flags are old and outdated. Using them on Java 17 and 21 does users a massive disservice, as they are built around the archaic G1 garbage collector. Shenandoah on Java 17 and Generational ZGC on Java 21 are significantly more performant, with GenZGC providing sub-millisecond maximum GC pauses.

I was curious to try this you propose: -XX:+UseZGC -XX:+ZGenerational
But in doing so I received the error of Failed to commit memory (Not enough space).

@LemmaEOF
Copy link
Author

I was curious to try this you propose: -XX:+UseZGC -XX:+ZGenerational
But in doing so I received the error of Failed to commit memory (Not enough space).

I mean you still need -Xmx for maximum RAM allocation. Check noflags.sh for a command builder.

@ChrisTVH
Copy link

I was curious to try this you propose: -XX:+UseZGC -XX:+ZGenerational
But in doing so I received the error of Failed to commit memory (Not enough space).

I mean you still need -Xmx for maximum RAM allocation. Check noflags.sh for a command builder.

When I set it, it looks like this, since I can only assign flags, but the RAM flags are already defined.
image
image

@ChrisTVH
Copy link

I made it allocate a minimum amount of memory at startup, it will end up using all the RAM when the server loads anyway.
Now I will test if it is better than Arkflags with real players and using a configuration based on the recommendations in this guide.

@ChrisTVH
Copy link

I've tried it and I've never used something that works so horrible, it generates a lot of server lag.
https://spark.lucko.me/1tJhYAxeGu

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants