From cbb9e2d3f04e06365bfe42769f02c8b667ce531d Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 8 May 2023 19:03:38 +0200 Subject: [chore/performance] Make sender multiplier configurable (#1750) --- internal/transport/controller.go | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'internal/transport/controller.go') diff --git a/internal/transport/controller.go b/internal/transport/controller.go index 23c51f35b..f77fbbb92 100644 --- a/internal/transport/controller.go +++ b/internal/transport/controller.go @@ -57,10 +57,19 @@ type controller struct { // NewController returns an implementation of the Controller interface for creating new transports func NewController(state *state.State, federatingDB federatingdb.DB, clock pub.Clock, client httpclient.SigningClient) Controller { - applicationName := config.GetApplicationName() - host := config.GetHost() - proto := config.GetProtocol() - version := config.GetSoftwareVersion() + var ( + applicationName = config.GetApplicationName() + host = config.GetHost() + proto = config.GetProtocol() + version = config.GetSoftwareVersion() + senderMultiplier = config.GetAdvancedSenderMultiplier() + ) + + senders := senderMultiplier * runtime.GOMAXPROCS(0) + if senders < 1 { + // Clamp senders to 1. + senders = 1 + } c := &controller{ state: state, @@ -69,7 +78,7 @@ func NewController(state *state.State, federatingDB federatingdb.DB, clock pub.C client: client, trspCache: cache.New[string, *transport](0, 100, 0), userAgent: fmt.Sprintf("%s (+%s://%s) gotosocial/%s", applicationName, proto, host, version), - senders: 2 * runtime.GOMAXPROCS(0), // on batch delivery, only ever send 2*GOMAXPROCS at a time. + senders: senders, } return c -- cgit v1.2.3