Rump3l Posted April 5, 2020 Posted April 5, 2020 Hallo, ich habe vor einigen Wochen einen ATM 3 R3mix Server auf der Spielversion 1.12.2 erstellt auf einem eigenen Root ( i7 4790K, 32 GB Ram ) Server läuft auf Linux. Und nun habe ich das Problem das der Server sobald ein Spieler Connectet ( dabei ist egal welcher ) TPS technisch anfängt Probleme zu werfen, trotz geringer CPU Auslastung. Wenn kein Spieler drauf ist: [16:53:27] [Server thread/INFO] [minecraft/DedicatedServer]: Overall: 20.00 TPS/20.46MS (100%) [16:53:27] [Server thread/INFO] [minecraft/DedicatedServer]: overworld [0]: 20.00 TPS/20.04MS (100%) [16:53:27] [Server thread/INFO] [minecraft/DedicatedServer]: the_nether [-1]: 20.00 TPS/0.08MS (100%) [16:53:27] [Server thread/INFO] [minecraft/DedicatedServer]: MINING_WORLD [-6]: 20.00 TPS/0.13MS (100%) [16:53:27] [Server thread/INFO] [minecraft/DedicatedServer]: ExtraUtils2_Quarry_Dim [-9999]: 20.00 TPS/0.05MS (100%) [16:53:27] [Server thread/INFO] [minecraft/DedicatedServer]: Spectre [-343800852]: 20.00 TPS/0.04MS (100%) [16:53:27] [Server thread/INFO] [minecraft/DedicatedServer]: Storage Cell [2]: 20.00 TPS/0.04MS (100%) mit einem Spieler: [16:55:06] [Server thread/INFO] [minecraft/DedicatedServer]: Overall: 15.58 TPS/64.20MS (77%) [16:55:06] [Server thread/INFO] [minecraft/DedicatedServer]: overworld [0]: 20.00 TPS/23.52MS (100%) [16:55:06] [Server thread/INFO] [minecraft/DedicatedServer]: the_nether [-1]: 20.00 TPS/8.39MS (100%) [16:55:06] [Server thread/INFO] [minecraft/DedicatedServer]: MINING_WORLD [-6]: 20.00 TPS/5.77MS (100%) [16:55:06] [Server thread/INFO] [minecraft/DedicatedServer]: ExtraUtils2_Quarry_Dim [-9999]: 20.00 TPS/8.46MS (100%) [16:55:06] [Server thread/INFO] [minecraft/DedicatedServer]: Spectre [-343800852]: 20.00 TPS/8.66MS (100%) [16:55:06] [Server thread/INFO] [minecraft/DedicatedServer]: Storage Cell [2]: 20.00 TPS/8.40MS (100%) [16:55:11] [Server thread/WARN] [minecraft/MinecraftServer]: Can't keep up! Did the system time change, or is the server overloaded? Running 9579ms behind, skipping 191 tick(s) Ich bin für jede HIlfe dankbar. Aktuell spielen Maximal 4 Leute auf dem Server, view distance ist runtergesetzt auf 5 - geladen sind so ca. 100 Chunks, allerdings sind die ja auch geladen wenn kein Spieler auf dem Server ist. Cpu usage: %Cpu0 : 38.2 us, 1.3 sy, 0.0 ni, 17.3 id, 42.9 wa, 0.0 hi, 0.3 si, 0.0 st %Cpu1 : 1.2 us, 0.6 sy, 0.0 ni, 90.5 id, 0.0 wa, 0.0 hi, 7.7 si, 0.0 st %Cpu2 : 0.3 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st %Cpu3 : 4.0 us, 0.3 sy, 0.0 ni, 95.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu4 : 0.0 us, 0.7 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu5 : 0.0 us, 0.3 sy, 0.0 ni, 98.0 id, 1.7 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu6 : 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu7 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st Bin gern bereit so gut wie alles zu tun um irgendwas zu verändern / verbessern.
TileEntity Posted April 5, 2020 Posted April 5, 2020 Funktioniert der /timings-Befehl? Falls ja, hänge da mal die Infos dazu mit an Was nutzt du für Plugins - die könnten auch infrage kommen
Rump3l Posted April 5, 2020 Author Posted April 5, 2020 Also bei /timings oder timings an sich spuckt der server nur unknown command aus - Und Plugins an sich garkeine - es ist eben die Normale Version von ATM3 R3mix. Auf nem Linux Root Server. Java -version spuckt folgendes aus: openjdk version "1.8.0_222" OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_222-b10) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.222-b10, mixed mode) falls es hilft.
TileEntity Posted April 5, 2020 Posted April 5, 2020 Java wird nicht das Problem sein - ATM nutzt ja einige Mods - evtl. liegt es daran. Du kannst ja mal Tick Profiler hinzufügen: https://www.curseforge.com/minecraft/mc-mods/tickprofiler Ingame sollte dann /profile e gehen - schau mal, ob da was ausgegeben wird
Rump3l Posted April 5, 2020 Author Posted April 5, 2020 [20:46:30] [EntityProfiler/INFO] [TickProfiler]: TPS: 15.021816 Single Entity | Time/Tick | % passive.EntityCow -334,70,113:0 | 0.318 | 1.725 passive.EntityBat -397,5,91:0 | 0.124 | 0.672 TileEntityTurbineCasing {-442,19,132}:0 | 0.123 | 0.666 TileEntityTurbineCasing {-435,32,122}:0 | 0.066 | 0.358 TileEntityTurbineCasing {-442,33,130}:0 | 0.064 | 0.349 Chunk | Time/Tick | % 0: -26, -2 | 2.131 | 11.531 0: -26, -3 | 2.047 | 11.078 0: -21, 7 | 1.405 | 7.605 0: -28, 8 | 0.791 | 4.278 0: -19, 2 | 0.776 | 4.197 All Entities of Type | Time/Tick | % passive.EntityChicken | 3.295 | 17.828 passive.EntitySheep | 2.296 | 12.425 passive.EntityCow | 1.186 | 6.419 item.EntityItem | 1.139 | 6.165 passive.EntityPig | 0.881 | 4.769 Average Entity of Type | Time/tick | Calls TileEntityGrinder | 0.054 | 413 EntityArmorStand | 0.049 | 1812 MobRelocatorTile | 0.047 | 453 TileTurbineController | 0.036 | 453 monster.EntitySnowman | 0.035 | 453 Das hier ist die ausgabe, also sind hühner schuld? xD
Rump3l Posted April 5, 2020 Author Posted April 5, 2020 Zusätzlich ist grade noch folgende ausgabe aufgetaucht: SEVERE: LEAK: ByteBuf.release() was not called before it's garbage-collected. Enable advanced leak reporting to find out where the leak occurred. To enable advanced leak reporting, specify the JVM option '-Dio.netty.leakDetection.level=advanced' or call ResourceLeakDetector.setLevel() See http://netty.io/wiki/reference-counted-objects.html for more information. nach eingabe von '-Dio.netty.leakDetection.level=paranoid' in den JVM Argumenten bleibt es leider gleich und wird nicht weiter aufgeschlüsselt, wo muss ich den Befehl also hinpacken?
Rump3l Posted April 5, 2020 Author Posted April 5, 2020 Falls das hilft, /profile a Gibt unteranderem das aus: Last tick 0.20690338s ago."Server thread" RUNNABLE (in native) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.<init>(FileOutputStream.java:213) at java.io.FileOutputStream.<init>(FileOutputStream.java:162) at net.minecraft.world.storage.MapStorage.func_75747_a(SourceFile:94) at codechicken.chunkloader.manager.PlayerLoginTracker$SavedData.forceSave(PlayerLoginTracker.java:104) at codechicken.chunkloader.manager.ChunkLoaderManager.updateLoginTimes(ChunkLoaderManager.java:682) at codechicken.chunkloader.manager.ChunkLoaderManager.onTickEnd(ChunkLoaderManager.java:666) at codechicken.chunkloader.handler.ChunkLoaderEventHandler.worldTick(ChunkLoaderEventHandler.java:32) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_2856_ChunkLoaderEventHandler_worldTick_WorldTickEvent.invoke(.dynamic) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) at net.minecraftforge.fml.common.FMLCommonHandler.onPostWorldTick(FMLCommonHandler.java:274) at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:776) at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) at java.lang.Thread.run(Thread.java:748) [20:59:36] [LagSpikeProfiler/INFO] [TickProfiler]: The server appears to have lag spiked. Last tick 0.22389464s ago."Server thread" RUNNABLE (in native) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.<init>(FileOutputStream.java:213) at java.io.FileOutputStream.<init>(FileOutputStream.java:162) at net.minecraft.world.storage.MapStorage.func_75747_a(SourceFile:94) at codechicken.chunkloader.manager.PlayerLoginTracker$SavedData.forceSave(PlayerLoginTracker.java:104) at codechicken.chunkloader.manager.ChunkLoaderManager.updateLoginTimes(ChunkLoaderManager.java:682) at codechicken.chunkloader.manager.ChunkLoaderManager.onTickEnd(ChunkLoaderManager.java:666) at codechicken.chunkloader.handler.ChunkLoaderEventHandler.worldTick(ChunkLoaderEventHandler.java:32) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_2856_ChunkLoaderEventHandler_worldTick_WorldTickEvent.invoke(.dynamic) at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) at net.minecraftforge.fml.common.FMLCommonHandler.onPostWorldTick(FMLCommonHandler.java:274) at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:776) at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) at java.lang.Thread.run(Thread.java:748)
TileEntity Posted April 5, 2020 Posted April 5, 2020 vor 2 Minuten schrieb Rump3l: codechicken.chunkloader Das klingt nach was - die Chunks werden durch diese Modifikation geladen - mehr Spieler, mehr Chunks, die geladen werden müssen. Teste den Server mal ohne ChickenChunks
Rump3l Posted April 5, 2020 Author Posted April 5, 2020 ALso bis jetzt sieht es sehr sehr gut aus, 1x Can't keep up in ca. 10 Minuten. nachdem ich den Mod gelöscht habe - ich möchte mich schonmal ganz recht herzlich bedanken, wäre aber toll wenn mir noch irgendwer bei dem problem mit dem SEVERE: LEAK: ByteBuf.release() was not called before it's garbage-collected. Enable advanced leak reporting to find out where the leak occurred. To enable advanced leak reporting, specify the JVM option '-Dio.netty.leakDetection.level=advanced' or call ResourceLeakDetector.setLevel() See http://netty.io/wiki/reference-counted-objects.html for more information. nach eingabe von '-Dio.netty.leakDetection.level=paranoid' in den JVM Argumenten bleibt es leider gleich und wird nicht weiter aufgeschlüsselt, wo muss ich den Befehl also hinpacken? helfen könnte, ich befürchte das das evtl. auch ein kleines bisschen an der Performance kratzt.
Silverrain2004 Posted May 22, 2020 Posted May 22, 2020 Grüß dich @Rump3l Da ich diesen Beitrag erst jetzt entdeckt habe, ich aber der Meinung bin, Lösungsansätze könnten auch Leuten helfen die "genau" oder ein "ähnliches" Problem damit haben. Daher auch mein Beitrag zu diesem etwas älterem Thema. Erklärung: Zum ersten ist es so, das 80% der Modpack-Entwickler rein für Singleplayer-Spieler arbeiten. D.h Ihre komplette Modpack-Entwicklung ist entweder nicht oder kaum für Server optimiert... das sieht man zum Teil auch an der Fülle von Mods die zum einen im Spiel kaum bis gar keine Verwendung aufweisen... schlechte Kombination aus verschiedenen Mods haben, die sich wiederum gegenseitig aushebeln und /oder aber einen haufen performance fressen. Ganz ehrlich... wenn es doch schon eine Maschine gibt die eine bestimmte Aufgabe erledigt... warum brauche ich diese in 3 Verschiedenen Ausführungen, wo sich diese doch "kaum" Unterscheiden? warum benötige ich in einem Pack 5000 Verschiedene Monster... wobei das eine noch Verständlich ist, da es Abwechslung bietet... aber warum kann man das nicht pro Chunk und Spieler begrenzen? damit nicht pro Spieler 100 Mobs in einem Chunk umherwandern? .... das sind nur kleine Beispiele die nix mit ATM Remix zu tun haben aber dennoch zu Lagspikes, unrundes Spielerlebnis und unötige Performanceeinbußen endet. Dabei hat es nicht zwingend etwas mit der Modanzahl zu tun, denn auch ein Pack mit 400 Mods kann performanter laufen wie eins mit 200, wenn man weiß wie. Lösung: Es wurde bereits von @Bedrock vieles gutes Vorgeschlagen, da gibt es nix auszusetzen, denn es war richtig was er gesagt hat. Ich möchte das ganze erweitern. Es gibt einige Serverseitige Tools, die meiner Meinung nach auf jeden Server gehören, denn die wenigsten packs sind wirklich für Server optimiert und wenn dann steht es meist in der Pack-Beschreibung, wenn die Entwickler darauf "Wert" gelegt haben. Ich werde nun kurz ein paar ServerMods vorstellen, damit Ihr wisst was die so tun. (Links sind hinzugefügt) Ich werde versuchen mich kurz zu halten, kann es aber nicht versprechen. Denn zu diesem Thema könnte man ein Buch schreiben, so viel kann man darüber schreiben. Aber ich versuche wenigstens das grobe wichtigste aufzuführen. Entity Purger Ein Mod der für das Hauptproblem von Lags sorgt... Zuviel "Entities" was soviel bedeutet wie zuviele "Geschöpfe" dazu wird alles gezählt, vom Hasen bis zum Zombie u.s.w. auf einem Fleck. Dieser Mod "muss" bevor er im Einsatz kommt konfiguriert werden, denn sonst macht er entweder was falsch oder gar nix. Sollte man diesen aber Feineingestellt haben, kann der die TPS konstant auf einem hohen Wert halten. Dennoch bekommt man das nur hin, wenn auch Mitspieler "achtsamer" spielen und nicht wie im Singleplayer Man kann generell sehr viel einstellen, eine detailiertere Beschreibung findet Ihr auf Curseforge. Lag Googles Eines der wichtigsten Tools meiner Meinung nach. Diese sollten bei Gamemastern und Serverownern auch auf dem Clienten liegen. Denn dadurch ist es Möglich eine "Lagquelle" direkt zu ermitteln, via Worldscan. Dadurch ist es Möglich sich direkt zur Lagquelle hinzuteleportieren und zu schauen wer oder was es grade verursacht. Dieser Mod wird von anderen, bis auf die Leute die entsprechende Rechte besitzen benötigt. Alle anderen können auch ohne diesen Mod auf dem Server joinen. World Edit Anders als viele Leute denken, nutze ich es weniger für das bauen, auch wenn man das könnte. Sondern eher für spezielle Aufgaben wie z.b ein Claim-Umzug... Spieler die nicht mehr mitspielen, dort kann man das komplette Gebiet entclaimen und "regenerieren" d.h im Urzustand versetzen und das ganz einfach. Danach kann man anderen, aktiveren Spielern den freien Bauplatz vergeben. Es gibt natürlich auch viel mehr Aufgaben die man einfacher mit Worldedit lösen kann. Natürlich gibt es von Forge aus auch ähnliche Funktionen, auch diese kenne ich, allerdings sind diese für meine Zwecke eher ungenau. Und da ich World Edit ohnehin favorisiere, ist es für mich sinnvoller. Allerdings müssen sowohl der Client als auch der Server diesen Mod besitzen. Aber es ist ja nicht so schwer einen Mod zusätzlich zu installieren zumindest nicht in Zeiten von Curseforge und Twitchapp , oder manuell. Configurable Despawn Timer despawnTimeInTicks (default = 12000, min 0, max 72000): The delay in ticks when an item should despawn, called the lifespan. Minecraft's default time is 6000 ticks. 1 second is 20 ticks. das bedeutet Ihr könnt die "Items auf den Boden" Lebensdauer verringern. Das beschert euch auch nochmal einiges an Performance, weil auch das ein typisches Problem für Modpacks ist, es sei denn, der Modpackersteller hat darauf geachtet. Am besten zu sehen, ist es wenn er in seiner Beschreibung stehen hat, das es Server-Optimiert ist, denn dann sind meistens solche Programme inkludiert. Auto Message Displayer Ein Klasse Mod für Serverowner. Da dieser viele Nachrichten die in konfigurierbaren Abständen gepostet werden verschickt. Besonders hilfreich für wichtige Informationen oder aber Regeln, damit Mitspieler auch daran errinnert werden auf was Wert gelegt wird kann allerdings für vieles mehr genutzt werden. Mod Authenticator Eigentlich selbsterklärend. Aber hier handelt es sich um ein Anti-Cheat-Tool. Hier könnt Ihr bestimmen, welche Zusatzmods Ihr auf eurem Server erlaubt und welche nicht, damit ein faires Spielen möglich ist. Chunk Pregenerator Auch ein sehr gutes Tool für Serverowner und Staff ... wie der Name schon vermuten lässt, pregeneriert dieser Chunks. D.h wie wenn Spieler bereits dort gewesen sind. Ergo bevor man eine Welt startet sollte man ein wenig vorgenerieren, damit es nicht gleich die TPS runterzieht, falls nun 5 Spieler oder mehr in 5 verschiedenen Richtungen erkunden. Das zieht immer sehr viel Performance. Aber dieses Tool kann noch viel mehr. Es lassen sich Erze regenerieren, Items und Mobs killen und viel viel mehr. Deny Blocks Einer der wichtigsten Mods überhaupt für jeden Server. Ihr kennt die Situation als Serverowner... Es gibt in vielen (nicht in allen) Modpacks Items, die entweder nicht genutzt werden sollen, weil sie zu Problemen oder gar zu Abstürzen führen und/oder weil der Serverowner neuen Mitspielern nicht vertraut und er nicht möchte, dass Items genutzt werden die potenziell Probleme verursachen und/oder sogar Lags verursachen. Da bietet sich dieser Mod hervoragend an, bestimmte Items serverseitig zu bannen und nur für bestimmte Personen zugänglich zu machen und/oder komplett rauszunehmen. Es gibt sehr viele Items und Beispiele die ich nun nennen könnte, aber das würde den Rahmen sprengen. 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now