diff --git a/transport/src/main/java/io/netty/channel/DefaultChannelConfig.java b/transport/src/main/java/io/netty/channel/DefaultChannelConfig.java index ac90d70a8d..7404a8f8d9 100644 --- a/transport/src/main/java/io/netty/channel/DefaultChannelConfig.java +++ b/transport/src/main/java/io/netty/channel/DefaultChannelConfig.java @@ -17,6 +17,7 @@ package io.netty.channel; import io.netty.buffer.ByteBufAllocator; import io.netty.buffer.UnpooledByteBufAllocator; +import io.netty.channel.nio.AbstractNioByteChannel; import io.netty.channel.socket.SocketChannelConfig; import java.util.IdentityHashMap; @@ -55,8 +56,11 @@ public class DefaultChannelConfig implements ChannelConfig { } this.channel = channel; - if (channel instanceof ServerChannel) { - // Accept as many incoming connections as possible. + if (channel instanceof ServerChannel || channel instanceof AbstractNioByteChannel) { + // Server channels: Accept as many incoming connections as possible. + // NIO byte channels: Implemented to reduce unnecessary system calls even if it's > 1. + // See https://github.com/netty/netty/issues/2079 + // TODO: Add some property to ChannelMetadata so we can remove the ugly instanceof maxMessagesPerRead = 16; } else { maxMessagesPerRead = 1;