I trying to benchmark gprc: *Server: Configuration: EventLoopGroup acceptGroup = new EpollEventLoopGroup(1); // chỉ dùng 1 boss thread để accept kết nối EventLoopGroup selectorGroup = new EpollEventLoopGroup(4); NettyServerBuilder builder = NettyServerBuilder.forPort(port) .addService(new GrpcHandler()) .bossEventLoopGroup(acceptGroup) .workerEventLoopGroup(selectorGroup) .channelType(EpollServerSocketChannel.class) .withChildOption(ChannelOption.TCP_NODELAY, true) .permitKeepAliveWithoutCalls(true) .permitKeepAliveTime(5, TimeUnit.SECONDS) .keepAliveTimeout(10, TimeUnit.SECONDS) ; ExecutorService rpcExecutor = Executors.newFixedThreadPool(12); builder.executor(rpcExecutor);
server = builder.build(); *Client: Configuration: EventLoopGroup selectorGroup = new EpollEventLoopGroup(1); channel = NettyChannelBuilder.forTarget(_serverHost) .usePlaintext() .eventLoopGroup(selectorGroup) .channelType(EpollSocketChannel.class, InetSocketAddress.class) .directExecutor() .withOption(ChannelOption.TCP_NODELAY, true) .build(); Client I try to run 12 thread concurrent to call blockingStub by this channel. Total request is 1000000 -> each thread call blocking 1000000 / 12 req. => result about Throughput is low (~60000 req/s)and Latency is high. I try to use Profiler of Intellij then I see this: [image: image-2025-5-21_15-52-4.png] => I guess only 1 thread to handle I/O => bottleneck Can you help me explain it or I config wrong in anywhere? Thank and best regards, LinhCN - Zalo -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/grpc-io/c3d89f78-71bd-420e-a295-9b0273bf4f36n%40googlegroups.com.
