1.7.10 server best JVM settings?
i have tested a lot of settings and honestly lost on what to do as i can clearly see cpu usage is very low (25-30% on allocated cores, have 4 allocated as it seems to be giving best performance) and tps is like 4-6tps at best, lows less than 1 tps
using custom hybrid forge server with openjvr9 as java
318 Replies
Thanks for asking your question!
Make sure to provide as much helpful information as possible such as logs/what you tried and what your exact issue is
Make sure to mark solved when issue is solved!!!
/close
!close
!solved
!answered
Requested by abltraumthebigsergal#0
actually.. somehow i managed to get it to do everything on single core and i can clearly see bottleneck now..
1 core pinned to 100%
and tps is 8 now.
i would assume without upgrading system i am not getting more performance?
why are you using openj9 (i assume openjvr9 is openj9)
openj9 performs much worse on minecraft servers than normal openjdk
in my case it is faster.. significantly so
if i am wrong what even i should use then
are you on a linux server?
nope
windows
id probably just try like temurin jre 11 (or use jre 8 if 11 doesnt work with 1.7.10 idk i used to use 11 on 1.8.8) https://adoptium.net/en-GB/temurin/releases/?version=11&os=windows&arch=x64&package=jre
and other than that id just use aikars flags i guess
i use aikars flags
slightly modified but mostly his flags
oddly enough changing from xms10G to xms1G somehow gave me nearly 30% performance gain
um
what?
if youre gonna try out temurin jre then switch back to default flags because i imagine thats just openj9 being cursed
yeah openj9 is weird as hell
i mean only 2.5gb ram usage is pretty insane for server than usually needs 5gb+ to run at decent speed
also for some reason actually fix the cpu usage being all over the place
openj9 does have better memory usage but its slower in general for minecraft servers
by how much?
approximately?
as i seem to be bottlenecked by GC in most cases for some reason
especially at higher ram usage
i found this from some old tests on github
i mean
You could try GraalVM CE 8
chunkgen is not even bottleneck for me
if hes gonna use graalvm atleast use EE no? (like isnt it faster)
it is entity processing
like tile entity
i was told pauseless GC was actually merged into CE
remove the entities
send a spark report?
im not sure but generally EE is supposed to have the biggest optimisations
have you atleast tested with the jre i sent?
atleast test it once first
with normal aikar flags
it takes 15 minutes to restart server..
wha
how
what
are you sure that isnt openj9 cursed moment
that isnt normal
what is your hardware
that sounds like a fucked up JDK or some shitty hardware
6700hq.
laptop?
yup
what OS….
windows
GOD
windows 10
💀💀💀💀💀💀
wait thats a good point
is windows not eating like 90% of cpu
i die a little bit inside every time i head that
make a spark report
like 5% or something
working on it
that just isnt true is it
no actually tho
youre not gonna be able to get anywhere without restarting your server
atleast try using a normal jre
fair, but EE is a hassle to get and CE has improved my performance greatly
pauseless GC is the main need for me
wait thats a thing
is that in any hotspot based JREs
spark
spark is a performance profiler for Minecraft clients, servers, and proxies.
only graal
Spark Profile Analysis
❌ Processing Error
The bot cannot process this Spark profile. It appears that the platform is not supported for analysis. Platform: Forge
Requested by abltraumthebigsergal#0
is zgc good i know some people use it now ive never tried it
also you know how to stop spam in console that something took a bit longer than it should have
looks like either a JRE or hardware (or possibly OS if windows is eating everything) issue to me
like nothing seems super abnormal except trash performance
i dont know but at 5 tps that should NOT be your main issue
there is a mod called LogBegone but I don’t think it goes down to your version
I’ve heard it is
so what do i do
switch your JRE and take another spark report
using normal aikar flags
to which
https://adoptium.net/en-GB/temurin/releases/?version=11&os=windows&arch=x64&package=jre
you can switch from 11 to 8 if minecraft 1.7.10 doesnt support java 11 but i think its fine (not 100% sure)
yeah 11 probably wouldn’t work
i used to use it on minecraft 1.8.8 servers a lot and it worked fine
and hes on windows so native transport with newer java versions wont be an issue
got 8 version
k
last time it took 15min to boot, now like almost done
probably something went wrong
is it their default serial gc which is pauseless?
i told u it is just cursed openj9
I think so..?
wtf
spark
spark is a performance profiler for Minecraft clients, servers, and proxies.
Spark Profile Analysis
❌ Processing Error
The bot cannot process this Spark profile. It appears that the platform is not supported for analysis. Platform: Forge
Requested by abltraumthebigsergal#0
no difference
tps difference because last one ran for 3 hours
also using much more ram
like i said
GC bottleneck
you’re using a ton of swap
which is slow as hell
because ram is completely full
anyway.
going back
i dont want to have 100% of ram
Honestly, just use a free server host (mcho.st or fps.ms), or oracle cloud
my modpack too custom
also this is a thing.
also free plans dont have sufficent ram/cpu
are you using a VPN
nope
hmm
honestly your only option is deal with the lag or go oracle cloud
oracle is blocked.
guess the country from 1 try
I swear like the only country that is geoblocked by oracle is Russia
true lol
also fun fact
actually ibm still has stuff in russia.
oh yeah
russia is not blocked
it is important customer
or something
ibm has a lot of high end shit
if honest i am a bit ibm shill lol
but really
they have VERY cool stuff
anyway
It isnt just slower in chunkgen, its pretty much everything, chunkgen is just the metric being used.
only thing openj9 is good for is conserving ram which doesn't seem to be an issue for you
GitHub
Minecraft-Performance-Flags-Benchmarks/Benchmarks/2022-10-06_20-15-...
Sane, Benchmarked Java Flags and Tweaks for Minecraft - Mukul1127/Minecraft-Performance-Flags-Benchmarks
this shows a comparison between openj9 and openjdk
notice openjdk beats openj9 except resource-wise
How are you measuring performance
it makes sense considering openj9 is supposed to work with a lot less ram and too much ram is not good for gc
basically i am keeping openj9 as it is much better for me
.
spark
also just looking at tps
Too many factors, needs to be controlled
Funny guy… actually believes openj9 is better
compared to what?
in my case for whatever reason everything else just perfoms worse kek
are you heavily constrained on ram?
16gb is pretty constrained
no that isn't
1-2 GB is barely constrained
16 GB is a lot
what does "everything else" entail, like what JREs?
-oracle JRE
-whatever jre this dude recommended
-couple more JREs that don't really perform better than oracle
any openjdk?
ah ok I see
well one problem you have is you didnt set the xms and xmx to the same thing during testing
the ram issue isnt caused by the java running but instead something else on your machine
having xms set to 1g or 5g doesn't change anything for me
xms and xmx need to be set to exactly the same value
-Xms6G -Xmx6G- XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysActAsServerClassMachine -XX:+ParallelRefProcEnabled -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:+PerfDisableSharedMem -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:MaxInlineLevel=15 -XX:MaxVectorSize=32 -XX:+UseCompressedOops -XX:ThreadPriorityPolicy=1 -XX:+UseDynamicNumberOfGCThreads -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=350M -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:+UseFPUForSpilling -XX:ConcGCThreads=2 -XX:+UseG1GC -XX:MaxGCPauseMillis=130 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:G1NewSizePercent=28 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=20 -XX:G1MixedGCCountTarget=3 -XX:InitiatingHeapOccupancyPercent=10 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=0 -XX:SurvivorRatio=32 -XX:MaxTenuringThreshold=1 -XX:G1SATBBufferEnqueueingThresholdPercent=30 -XX:G1ConcMarkStepDurationMillis=5 -XX:G1ConcRefinementServiceIntervalMillis=150 -XX:G1ConcRSHotCardLimit=16
try these flags
remove AlwaysPreTouch
you right they probably don't have large pages
this isn't true
wdym
they do not need to be set to the same thing
most mc hosts actually keep xms quite low
tbf thats in the best interest of the host
yea
you dont need xms=xmx, but the reason most hosts dont do it is because its beneficial for them
but you aren't using all your memory unless xms=xmx
so?
you... dont want to
**allocating
ur still not using it all if xms=xms
why wouldnt you
why would you?
larger heap = larger pauses
you get no real performance increase
and if ur minecraft server is using 5gb, but you've set xms to 16gb,
ur server still only uses 5gb
so aikar and other are just wrong?
well never understood why he said "unused ram is wasted ram" when it comes to minecraft
because if you dont need it, dont allocate it in the first place
just leads to longer pauses
i've seen sources on both sides saying xms should or shouldnt = xmx
and at the end of the day, both parties agree the difference is negligible
someone shared a nice article here i think in #general a while back
so g1 works worse with xms=xmx because he seems to be suggesting the opposite
well thats how garbage collections works
the more you have in hea
heap
the longer it takes to clean it out
yes, but say a modpack recommends 8 GB of ram, should you not set xms and xmx both to 8gb?
so that you are always using the amount of ram recommendes
we're saying it doesnt matter, its not better or worse imo
that's
not how it works
this is strictly for xms, not xmx
yeah, the more things that go on, the more RAM the server will use in short
not the most perfect explanation
so if it does not matter, why is a change in performance even suggested ?
theres like a 0.5% increase once
once again, its one of those things that there are valid arguments for both sides, but in practice there hasnt been a noticible difference in performance for setting a lower or high heap size
And a slower startup
because instead of allocating while its doing other things (running your server) it does it at the start
so theres a tradeoff, but still a slight performance improvement
eh
not necesarrily
dzone.com
Setting Initial, Maximum Memory Size to Same Value - DZone
Setting the initial memory size the same as the maximum memory size has certain "cool" advantages. Let’s discuss them in this post.
this is what ive seen as sited a lot for the reason behind setting xms and xmx the same
bigger heaps generally mean longer pauses for the gc
so if u got a bigger xms it could mean longer pauses
but if u got lots of dynamic objects the jvm consistently changing the heapsize in run time can hurt ur performance. its a push and pull.
u will find articles supporting both sides of the argument
do you have one of the other side?
and the end all be all, is the difference is neglible in minecraft
also xms = xmx very much depends on the program itself
^
example
the setting exists because depending on the use case one might be better one might be worse
but we are solely talking about minecraft
exactly, so a generalized article doesnt have much meaning
but this discussion kinda has no value here, if u want to set xms=xmx sure, go for it
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/sizing.html
bascially every minecraft version, mod, plugin u add might have some funky objects in memory that can totally change what heap size is the most optimal
but it would explain the performance difference that people that test flags receive from it
so u might get a .1% boost in performance or u might actually lose performance, but its pretty much agreed upon that it just isn't noticible
i havent seen any proper benchmarks in mc when it comes to this
also not with this specific setting
the biggest benchmarking flag repo thing, used a not great testing method, and only client
and 3 years or so old tests
a big factor that no benchmark is testing is random plugins or mods u might have
2 years, but why is the testing method not great?
because it doesnt take into affect other processes
afaik
like background processes
windows updates being windows updates
minecraft being minecraft
thats just an assumption though
ok /shrug/
im just more inclined to believe aikar, forge devs, etc when it comes to this
ok, as we said you do you
i dont think anyone here is saying u shouldnt have xms = xmx, all im saying that it doesnt really matter.
right now u can go and run some tests
4 servers
just the minimum flags to run a jar +
- one where xms = xmx
- one where xms != xmx
aikar flags (+/- the xms=xmx)
- one where xms = xmx
- one where xms != xmx
u will notice a big difference from the minimum vs the aikar flags
however in both sets, u will not notice any difference between the xms/xmx equalling
no one is saying AIKAR FLAGS ARE WRONG!!!!!
I never said anyone said aikar's flags are wrong
@Cracker
: )
this is your thing
WHO pinged
are you blind
i did
smh
well
no
i mean, cracker's.. dealing with startup flags
don't use j9 with forge or fabric
it breaks 100%
use adoptium jdk or graalvm ee as some stated
Who are you again?
cracker..
lmfao
bro has dementia
hes trying to learn java
he slept for 2 hours
🙏
a
spark
spark is a performance profiler for Minecraft clients, servers, and proxies.
Spark Profile Analysis
❌ Processing Error
The bot cannot process this Spark profile. It appears that the platform is not supported for analysis. Platform: Forge
Requested by abltraumthebigsergal#0
better.
not perfect but better
a lot of the lag is GC and gregtech
>windows 10
>shit cpu
Modded not gonna run well
Maybe paper fine
>openj9
Run this server on Ubuntu at least
And no openj9
openj9 perfoms better than anything i tried.
also...
if i were going to dedicated Minecraft server what would better for pure performance 12600k or 5600x?
(both with HT off of course and same ddr4 3600mhz cl18 ram)
hey. what link what site ddi you take these flags from?
I wanna include them in my server starting script
im on java8 on forge 1.7.10 server
they dont work, i wanna link, read a bit more about it
where you took them from?
Minecraft Flags Generator - Birdflop
A simple script generator to start your Minecraft servers with optimal flags. Birdflop is a registered 501(c)(3) nonprofit Minecraft host aiming to provide affordable and accessible hosting and resources. Check out our plans starting at $2/GB for some of the industry's fastest and cheapest servers, or use our free public resources.
Use the paper one
paper doesnt work with orespawn biomesoplenty chocolatequest etc
GitHub
GitHub - Mukul1127/Minecraft-Performance-Flags-Benchmarks: Sane, Be...
Sane, Benchmarked Java Flags and Tweaks for Minecraft - Mukul1127/Minecraft-Performance-Flags-Benchmarks
ah yes non tested flags again love em
And again a fork of a repo with only clientsided test done etc
so the creator just be lying?
oh so untested on serverside
the title be lying i guess!
literally doesn't test his own flags
guess they dont work
what did you change to get a pauseless gc because like as far as i can see graalvm just has g1gc and zgc
also isnt this graal EE https://www.graalvm.org/downloads/
Download GraalVM
GraalVM is an advanced JDK with ahead-of-time Native Image compilation.
community just has releases on their github
and EE got renamed to oracle graalvm
yea its EE i guess EE doesnt need an email anymore
EE and CE and just one no?
I was informed EE’s pauseless gc feature was merged into CE
yea but I can’t find anything about a pauseless gc in either ee or ce
maybe i should just send my server files and have ya all actually test if performance i am getting is actually normal for my Minecraft world or not
and maybe we will able to find explanation why openj9 performs so well for me
because bottleneck is not chunks as it is usual for server
but processing of chunks
like 700+ tile entities
Unsure if anyone else said this, but Java flags can’t fix gregtech using more than 50% of each tick
No matter what you do, gc will run frequently because (in the last timings link), the process only had 2gb of memory assigned
because it decided itself to have 2gb only
forcing more ram wouldn't fix issue when like 2gb are actually used
it was using more than 2gb of memory here
yeah
i will try again different java i was recommended
nahh..
it doesn't even load properly
and uses all ram
awesome java version..
finding graavvm is tricky but i found it
there is a java8 version
but openj9 JUST works
now Minecraft server barely runs..
it actually might be extreme memory bottleneck
@1-3-AbltraumTheSu-35-amine this is why you shouldnt be using windows
and if i have to?
at this point use an oracle cloud free tier instance or a free host like mcho.st / fps.ms
why are you forced to?
it wouldn't even boot
also they are banned
oh yeah
forgot about that
if you cant remove windows from the laptop you could even like run a bootable linux usb with persistence (like ubuntu or something) (though avoid storing the minecraft server files in the USB persistence, store those on the main drive)
not possible too.
i will soon build new pc and will use linux there
i doubt there is any performance difference between windows and Linux
i wanna just main linux
so whats taking up that extra 9.2 gb of ram
Minecraft instance i am using to actually do stuff
it is not dedicated Minecraft server
thats just not correct
❌
like.. how that even be
linux is way lighter
no bloatware
Linux for performance is a huge difference
Atleast I use it for my desktop
linux server has no ui
so no ui burder
just ssh
Minecraft starts up in about 1-3 seconds
Vanilla
On windows it took its sweet old time
Just disclaimer don’t switch to Linux yet with a nvidia gpu
U will regret
windows server also has no ui if you install server core
good point
but
windows
so question
12600k with tuned ram or 5800x with tuned everything?
12600k as i could see could do around 1800 single core in r23 but thats on z chipset mobo and i can find only b chipset that were reasonably priced
ryzen does 1600 in r23 but thats with 40 watts less
it seems in java performance difference between is about ~10%
and it is all core
also ddr4 vs ddr5 that would add around 10% (java seems to like ram bandwidth a lot)
no about nothing of difference
but thats multi core..
not sure about single core
id pick 5800x out of those
because single core performance is probably similar and for multicore in the case of running multiple minecraft server instances, the ryzen one will be way better because it has 8 good cores instead of just 6 good cores (with 4 trash cores)
hm
and if i running 1 instance and using other part of cpu for something else
tbh id still get the AMD one
why is that?
just curious
because 8 vs 6 good cores
so last... like couple days everyone screaming at me that 5800z is e waste wasn't true :upvote:
why these flags dont work on my forve 1.7.10 jar java 8
and these work?
I cant work out why it doesnt work , how to check if theyre for pufferfish server only or somehyting?
"it doesn't work" is not very useful
what do you mean by "it doesn't work"
send logs
it cant start, it was something like a one liner
that doesn’t help
tomorow i will start the server up i dont wanna heat up the room before going sleep with this fx8350, it is too hot already where i live
cya tomorw
a big note is linux support
as i know Linux alike windows have no fucking idea what to do with e cores (and probably never will) and in general it seems amd is just better for linux across board in terms of stability and performance
especially with potential of intel cpu frying itself from mobo overvolting it ..
@Skullians
try these
i do have similar ones that are already working bro
the second one
then why are you changing them
]i wanted to use these larger ones
you're using java 8
they likely don't work
how to check why im unable to use those larger flags
nothing you can do about that
okay,, java compat.
what java are you using
as in who from
from alpine community repos
have you tried temurin 8
incubator one dont work on older javas
and doesnt do anything unless you use pufferfish or a fork
I forgot about removing that xd
hey what is this graal vm btw? would i benefit from it here on alpine?
i saw something on youtube , developer descibing something i didnt understood
gonna look it up and try
GraalVM is it’s own JDK
GraalVM EE requires to to register an oracle account with a company
okay, so a nono for me, and im not using jdk but jre which is lighter i think
nvm im using a jdk :<
true
without it starts just fine ^^
so graalvm will be better jdk than temurin8?
i will first try temurin 8
Assuming you can sign up for it
actually nevermind
Graalvm EE 8 doesn’t exist
it’s 17+
Thanks.
????
Ill steal it
Wait thats java 8
Smh
I took that from flags.sh
and with the incubator flag that’s not java 8 kek
that’s like 17+
how’s your geopol performance going @humik58
<3
Outside of OOM crashes
Its fine
Had to remove ZGC
not surprised
dare you to get graalvm EE kek
dont use zgc if you dont know exactly what your doing, or specifically have a issue on that part
But we dont have that many players atm, its definetly more stable in terms of playerbase but we overexpected a bit
ah
That was crackers doing
really neat thing
All i know about is that its experimental, more intense but spread on all threads
yup
And works better with more ram
which you dont have
:KEKW:
20 gigs dawg
Plenty
thats not "more ram" in the eyes of zgc
Zgc has no eyes
also you arent allocating 20 gb
if you’re allocating 20GB something is wrong with you
Na na
87% alloc rn
GraalVM EE + pauseless gc
:hehehe:
Funny thing.
Cracker put me on graal
But enterprise
did you change your flags
to actually use graalvm
Its java 17 rn
Aikar
Graalvm EE flags work now with the current Graalvm actually
no need for oracle account
The main issue is that Temurin 8 is not compatible with the musl libc used by Alpine Linux
i discovered i can use newer java
Asking ai?? 💀
xd
I thought you don’t need an account to download EE anymore
like the normal one from the graalvm site is EE now and community one is only on their GitHub
^
yeah
gc something
btw i will try java 21 on the server then java 11 it might start
someone told me
but modded one might be problematic
I thought minecraft threw errors on new versions of java because of encryption stuff being different?
at least java 16+
I also would recommend against using musl based containers if you're concerned about performance. Musl has been known to perform worse than glib in multithreaded environment
graalvm is most stable for me
so my go-to java now
also for java 8 you need to go github and look for older version
at some point at you should see java 8 version
also
alpine Linux is fucking goated
you can probably get the enterprise version (faster) from https://www.oracle.com/downloads/graalvm-downloads.html (the graalvm enterprise 21 lts tab)
can you get direct file for me?
oracle is blocked in my country
no it requires (free) account
cant you use a vpn?
vpn wouldn't work unfortunately
so can you help?
since to register you need phone number
graalvm is quirky..
!spark
Spark Profiler
Spark can be used to see why your server or client is lagging.
Users can share a spark report via
/spark profiler start --timeout 300
which creates a report after 5 minutes. The spark report is useful in debugging why your server is lagging, so ideally you should always provide one while asking for support.
Download | Website | DocsAdmincraft Canned Responses
If you’re experiencing lag
Download spark and follow the command mentioned here
a
oh finally
hell
well have to wait till i get home
i will need to experiment with it
and find the server too..
it is somewhere
i mean not going to lie
why do you need performance on a < 1.8 server?
mods i dearly love
host specs?
i7 6700hq gtx 960m 16gb ddr4 2400mhz cl17
how much ram do u like allocate
10gb.
above 6 no performance gain
I wonder if its slighlty because of windows and the jdk
also the fact you're on 1.7.10
i had opportunity to test on much faster cpu
performance scales about linearly
so having better hardware will not do much
but performance shouldn't be bad.
Do you still need the graalvm jars lol
graalvm doesn't give more performance.
I’ve had perf boosts with graal
but I guess it depends
my theory it is a bug in my jar
possibly
Doubt it
or recursion bug somewhere
that is just impossible i get tps of 4
send a spark
can i steal this thread?
how the hell do i install graalvm
their documentation doesnt explain anything
im completely lost
GraalVM
GraalVM is an advanced JDK with ahead-of-time Native Image compilation.
oh
i swear this wasnt here the last time i tried installing it
thanks
xd
np
im serious i kept reading the installation guide over and over again because it skimmed over the installation in like two sentences without explaining anything
weird
or you can use sdkman
that too