Recent Discussions
Self-hosted Modded MC Server - Chunk Generation very slow
Unanswered
Southern yellowjacket posted this in #questions
60 messages
0 views
Southern yellowjacketOP
Hello! Looking for a little help in determining which mod/mods would impact server performance - specifically chunk generation.
Some info:
Host OS: Unraid
Server is run in a container using itzg/docker-minecraft-server image
MC Version: 1.16.5
Forge version: 1.16.5-36.2.34
My compose file:
Mod List:
Pixelmon-1.16.5-9.1.13-universal.jar
"Rechiseled Compat-1.0.5.jar"
ScalableCatsForce-2.13.10-build-11-with-library.jar
EnvyHunt-Forge-4.4.1-1.16.5.jar
Mekanism-1.16.5-10.1.2.457.jar
byg-1.3.6.jar
BetterPokeBroadcaster-Forge-1.2.0-1.16.5.jar
Quark-r2.4-322.jar
DungeonsArise-1.16.5-2.1.49-beta.jar
appliedenergistics2-8.4.7.jar
rechiseled-1.1.6-forge-mc1.16.jar
spark-1.9.1-forge.jar
AdditionalEnchantedMiner-1.16.5-16.1.15_938619e.jar
cloth-config-4.17.132-forge.jar
ForgePlaceholderAPI-Forge-2.0.4-1.16.5.jar
buildinggadgets-1.16.5-3.8.4-build.25+mc1.16.5.jar
jei-1.16.5-7.8.0.1013.jar
IronGenerators-1.6.0-final-1.16.x.jar
mcjtylib-1.16-5.1.8.jar
konkrete_forge_1.6.1_MC_1.16.2-1.16.5.jar
architectury-1.32.68.jar
additional_lights-1.16.4-2.1.3.jar
xnet-1.16-3.0.17.jar
supermartijn642corelib-1.1.18-forge-mc1.16.jar
ironfurnaces-1.16.5-2.7.7.jar
fusion-1.2.3-forge-mc1.16.jar
rftoolsbase-1.16-2.1.5.jar
backpacked-forge-1.16.5-2.1.13.jar
Waystones_1.16.5-7.6.4.jar
MekanismTools-1.16.5-10.1.2.457.jar
movingelevators-1.4.10-forge-mc1.16.jar
SuperTools-1.2_1.16.5.jar
ae2wtlib-0.3.3-1.16.5.jar
OreExcavation-1.8.157.jar
ironchest-1.16.5-11.2.21.jar
Chunky-1.2.123.jar
supermartijn642configlib-1.1.8-forge-mc1.16.jar
collective-1.16.5-5.49.jar
inzheFoPCore-v.1.2.0.jar
InvMove-1.16-0.8.2-Forge.jar
ferritecore-2.1.1-forge.jar
AutoRegLib-1.6-49.jar
supertools-1.16.5-4.5.jar
Disenchanting-forge-1.16.5-1.7.2.jar
PickUpNotifier-v1.2-1.16.3.jar
worldborder_1.16.5-2.4.jar
justzoom_forge_1.0.2-2_MC_1.16.5.jar
I have run some spark reports but to be honest, I don't understand a lot of it and it all points at just chunk generation.
I am using Chunky to pregenerate chunks as that has definitely been the most taxing on the server while users are playing. Server is exceptionally stable when doing anything but chunk generation. This is why I am on this crusade to resolve the server performance.
Some info:
Host OS: Unraid
Server is run in a container using itzg/docker-minecraft-server image
MC Version: 1.16.5
Forge version: 1.16.5-36.2.34
My compose file:
services:
mc:
image: itzg/minecraft-server:java11
restart: unless-stopped
tty: true
stdin_open: true
ports:
- "25565:25565"
environment:
EULA: "TRUE"
MAX_PLAYERS: 20
TYPE: "AUTO_CURSEFORGE"
VERSION: "1.16.5"
MEMORY: 16G
MOTD: "WELCOME TO PIXELMON"
CF_MODPACK_ZIP: "/data/Pixelmon-BadBatch.zip"
CF_API_KEY: "[REDACTED]" # Use double quotes for proper escaping
CF_SLUG: pixelmon-badbatch
CF_OVERRIDES_EXCLUSIONS: |
config/*
USE_AIKAR_FLAGS: "TRUE"
volumes:
- /mnt/user/pixelmon-prod/pixelmon:/data
restarter:
image: docker:cli # Fixed indentation
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
entrypoint: ["/bin/sh", "-c"]
command:
- |
while true; do
echo 'Sleeping for 8 hours...'
sleep 28800;
docker exec pixelmon_prod-mc-1 rcon-cli 'say The server will restart in approximately 10 minutes.';
docker exec pixelmon_prod-mc-1 rcon-cli 'say Wrap up what you are doing. This cannot be stopped.';
sleep 580;
docker exec pixelmon_prod-mc-1 rcon-cli save-all;
docker exec pixelmon_prod-mc-1 rcon-cli 'say Server has been successfully saved. Anything past this point is likely to be lost.'
sleep 20
docker exec pixelmon_prod-mc-1 rcon-cli 'say Server restarting in 5 seconds.';
sleep 5;
docker restart pixelmon_prod-mc-1;
done
restart: unless-stoppedMod List:
Pixelmon-1.16.5-9.1.13-universal.jar
"Rechiseled Compat-1.0.5.jar"
ScalableCatsForce-2.13.10-build-11-with-library.jar
EnvyHunt-Forge-4.4.1-1.16.5.jar
Mekanism-1.16.5-10.1.2.457.jar
byg-1.3.6.jar
BetterPokeBroadcaster-Forge-1.2.0-1.16.5.jar
Quark-r2.4-322.jar
DungeonsArise-1.16.5-2.1.49-beta.jar
appliedenergistics2-8.4.7.jar
rechiseled-1.1.6-forge-mc1.16.jar
spark-1.9.1-forge.jar
AdditionalEnchantedMiner-1.16.5-16.1.15_938619e.jar
cloth-config-4.17.132-forge.jar
ForgePlaceholderAPI-Forge-2.0.4-1.16.5.jar
buildinggadgets-1.16.5-3.8.4-build.25+mc1.16.5.jar
jei-1.16.5-7.8.0.1013.jar
IronGenerators-1.6.0-final-1.16.x.jar
mcjtylib-1.16-5.1.8.jar
konkrete_forge_1.6.1_MC_1.16.2-1.16.5.jar
architectury-1.32.68.jar
additional_lights-1.16.4-2.1.3.jar
xnet-1.16-3.0.17.jar
supermartijn642corelib-1.1.18-forge-mc1.16.jar
ironfurnaces-1.16.5-2.7.7.jar
fusion-1.2.3-forge-mc1.16.jar
rftoolsbase-1.16-2.1.5.jar
backpacked-forge-1.16.5-2.1.13.jar
Waystones_1.16.5-7.6.4.jar
MekanismTools-1.16.5-10.1.2.457.jar
movingelevators-1.4.10-forge-mc1.16.jar
SuperTools-1.2_1.16.5.jar
ae2wtlib-0.3.3-1.16.5.jar
OreExcavation-1.8.157.jar
ironchest-1.16.5-11.2.21.jar
Chunky-1.2.123.jar
supermartijn642configlib-1.1.8-forge-mc1.16.jar
collective-1.16.5-5.49.jar
inzheFoPCore-v.1.2.0.jar
InvMove-1.16-0.8.2-Forge.jar
ferritecore-2.1.1-forge.jar
AutoRegLib-1.6-49.jar
supertools-1.16.5-4.5.jar
Disenchanting-forge-1.16.5-1.7.2.jar
PickUpNotifier-v1.2-1.16.3.jar
worldborder_1.16.5-2.4.jar
justzoom_forge_1.0.2-2_MC_1.16.5.jar
I have run some spark reports but to be honest, I don't understand a lot of it and it all points at just chunk generation.
I am using Chunky to pregenerate chunks as that has definitely been the most taxing on the server while users are playing. Server is exceptionally stable when doing anything but chunk generation. This is why I am on this crusade to resolve the server performance.
debug.log
DownloadSouthern yellowjacketOP
CPU : Ryzen 5 5800x
RAM: 32GB DDR4 3200Mhz
GPU is a fire pro but isn't being used at all
RAM: 32GB DDR4 3200Mhz
GPU is a fire pro but isn't being used at all
Sorry, was going to add more but hit character limit - running spark profiler right now @Connecticut Warbler
And thank you for the response 

@Connecticut Warbler pregen and worldborder on modded is usually the best strategy
Southern yellowjacketOP
Pregen is the goal, but looking at the logs you can see it is just slow for the most part. I am assuming when it's hitting >10 CPS for me, it's just seeing already-generated chunks
@Southern yellowjacket Here's the spark profiler:
https://spark.lucko.me/1PlzFaGDSI
https://spark.lucko.me/1PlzFaGDSI
Well immediately I see that you're using unoptimized JVM flags. That'll help somewhat. https://flags.sh
@Southern yellowjacket what are you hosting on? is this a homehost?
Southern yellowjacketOP
This is - Unraid OS with the server running in a docker container
that did not answer my question
are you hosting on a machine at home?
Southern yellowjacketOP
Yes I'm hosting this at home, on its own hardware
@Southern yellowjacket Yes I'm hosting this at home, on its own hardware
What's your storage look like?
@PM_ME_YOUR_REPO What's your storage look like?
Southern yellowjacketOP
SSD is a Samsung 970 or something similar - 512gig
I have an array of 30tb HDDs but all of this should be living on the SSD
I have an array of 30tb HDDs but all of this should be living on the SSD
However this isn't how it originally set and I might have used Unraid wrong. Looking into this now to confirm that it's not using my array of HDDs
@Southern yellowjacket SSD is a Samsung 970 or something similar - 512gig
I have an array of 30tb HDDs but all of this should be living on the SSD
I have an array of 30tb HDDs but all of this should be living on the SSD
I don't have any experience with Unraid and I don't know EXACTLY what these stats are referring to, but it looks like there is some IO bottlenecking. That's why I asked.
image.png
IOWorker tells me it's disk read/write
CompletableFuture and ForkJoinPool sounds to me like maybe a SQL server connection pool is getting overwhelmed? That's the context I know of pools being used. Or maybe its just async IO. Not sure.
@PM_ME_YOUR_REPO I don't have any experience with Unraid and I don't know EXACTLY what these stats are referring to, but it looks like there is some IO bottlenecking. That's why I asked.
Southern yellowjacketOP
Hoo boy you are good - I moved the directory over successfully using Unraid Docs to the SSD and we are muchhhh better now
Southern yellowjacketOP
10 average now versus 1 at times. I t still does the big spike ups
@Southern yellowjacket 10 average now versus 1 at times. I t still does the big spike ups
Alright. New Spark report. Let's keep chipping away at it.
Southern yellowjacketOP
Spike ups to 40 cps, but again I theorize that's Chunky already-gen'd chunks
Loading...
Loading...