From 3ad0c73d6a6d7f67ac8795c83553065b37ff0116 Mon Sep 17 00:00:00 2001 From: Maxksim Fomenkov Date: Fri, 2 Sep 2022 17:18:55 +0300 Subject: [PATCH] fixed proxy server performance --- src/main/kotlin/io/emeraldpay/dshackle/proxy/ProxyServer.kt | 2 ++ .../io/emeraldpay/dshackle/upstream/ethereum/WsConnection.kt | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/io/emeraldpay/dshackle/proxy/ProxyServer.kt b/src/main/kotlin/io/emeraldpay/dshackle/proxy/ProxyServer.kt index 69a2b109..d8dd1be5 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/proxy/ProxyServer.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/proxy/ProxyServer.kt @@ -28,6 +28,7 @@ import io.micrometer.core.instrument.Metrics import io.micrometer.core.instrument.Timer import io.netty.channel.ChannelHandler import io.netty.channel.ChannelHandlerContext +import io.netty.channel.nio.NioEventLoopGroup import org.slf4j.LoggerFactory import reactor.netty.http.server.HttpServer import reactor.netty.http.server.HttpServerRoutes @@ -107,6 +108,7 @@ class ProxyServer( serverBuilder .route(this::setupRoutes) + .runOn(NioEventLoopGroup()) .bindNow() } diff --git a/src/main/kotlin/io/emeraldpay/dshackle/upstream/ethereum/WsConnection.kt b/src/main/kotlin/io/emeraldpay/dshackle/upstream/ethereum/WsConnection.kt index d09cda9e..25cd9104 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/upstream/ethereum/WsConnection.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/upstream/ethereum/WsConnection.kt @@ -119,7 +119,9 @@ open class WsConnection( .multicast() .directBestEffort() private val sendIdSeq = AtomicInteger(IDS_START) - private val sendExecutor = Executors.newSingleThreadExecutor() + private val sendExecutor = Executors.newFixedThreadPool( + 1.coerceAtLeast(Runtime.getRuntime().availableProcessors() / 2) + ) private var keepConnection = true private var connection: Disposable? = null private val reconnecting = AtomicBoolean(false)