From a1ae8aaff1a3e357072baf7115d1eadbc9c148a5 Mon Sep 17 00:00:00 2001 From: Andrew Steinborn Date: Sat, 24 Apr 2021 17:52:33 +0100 Subject: [PATCH] Set Netty pooled buffer size to 4MB diff --git a/proxy/src/main/java/net/md_5/bungee/BungeeCordLauncher.java b/proxy/src/main/java/net/md_5/bungee/BungeeCordLauncher.java index 0db3d76a..35680528 100644 --- a/proxy/src/main/java/net/md_5/bungee/BungeeCordLauncher.java +++ b/proxy/src/main/java/net/md_5/bungee/BungeeCordLauncher.java @@ -26,6 +26,19 @@ public class BungeeCordLauncher System.setProperty( "jdk.util.jar.enableMultiRelease", "force" ); } + // Waterfall start + // By default, Netty allocates 16MiB arenas for the PooledByteBufAllocator. This is too much + // memory for Minecraft, which imposes a maximum packet size of 2MiB! We'll use 4MiB as a more + // sane default. + // + // Note: io.netty.allocator.pageSize << io.netty.allocator.maxOrder is the formula used to + // compute the chunk size. We lower maxOrder from its default of 11 to 9. (We also use a null + // check, so that the user is free to choose another setting if need be.) + if (System.getProperty("io.netty.allocator.maxOrder") == null) { + System.setProperty("io.netty.allocator.maxOrder", "9"); + } + // Waterfall end + OptionParser parser = new OptionParser(); parser.allowsUnrecognizedOptions(); parser.acceptsAll( Arrays.asList( "help" ), "Show the help" ); -- 2.31.1