Is 16 cores on Folia really necessary to have more performance than on Paper?
My current server has a 3700X, therefore it has 16 threads. I am hosting a smp and I wonder if I should switch to Folia at the next season (it is in several months and Folia will be more production-ready). At the start of seasons I can have 35+ players at the same time and there are some performance issues. I totally get that when using Folia, not all threads will be used by regions and some are reserved to generation, other processes, etc. However, Paper can barely use 1/4 of my CPU and I feel like Folia could potentially use my resources more effectively. I really wish there was an easy way to benchmark this.
10 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 seriset#0
yes
Folio is generally quite explicit, there exact phrasing is something like "It needs 16 cores, not threads as an absolute minimum"
so a 16 core chip is the bare minimum essentially
rip
:(
If you’re having issues with 35+ players on paper, paper isn’t the issue, and folia won’t fix that
Folia is meant for much much larger servers
If I was them I'd do it the other way and say that 32 threads is the minimum and enforce it at runtime
Well what about plugin developers testing
The tests wouldn't be valid without the appropriate number of cores/threads since you wouldn't get the same concurrency issues
So you'd need a 32-thread machine to actually test against it too
Linode will rent you a 16 core system for $0.43/hour
well what if its literally just run a few command and oh hey it works
Just because it works on a 8 core system doesn't mean it'll still work on a 16 core system... That's half the problem with highly concurrent applications
AMP has had the opposite problem before now where something would be fine on high core count systems, but would misbehave on systems with fewer cores - because tasks that were expected to run concurrently instead ran sequentially. Folia you'd have the same basic problem.
You test on a 4/8 core system and it's fine because some of your tasks run sequentially because you don't have enough cores, put it on a 16/32 core system and they run concurrently and you get race conditions. So your tests are invalid in a heavily-threaded environment if you can't roughly match the target hardware.