summary refs log tree commit diff
path: root/synapse/http/client.py
diff options
context:
space:
mode:
authorSean Quah <seanq@matrix.org>2023-05-03 15:23:16 +0100
committerSean Quah <seanq@matrix.org>2023-05-03 15:23:16 +0100
commit8aee823393d6a60740f5e9990626c823f8b46eec (patch)
treebe0ff5ef1838911bf3e1a0d7a86dbacfdbe8a1a5 /synapse/http/client.py
parentSpeed up deleting of old rows in `event_push_actions` (#15531) (diff)
parentRevert "Reduce the size of the HTTP connection pool for non-pushers" (#15530) (diff)
downloadsynapse-8aee823393d6a60740f5e9990626c823f8b46eec.tar.xz
Merge branch 'release-v1.83' into develop
Diffstat (limited to 'synapse/http/client.py')
-rw-r--r--synapse/http/client.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/synapse/http/client.py b/synapse/http/client.py

index 164abe9fc7..91fe474f36 100644 --- a/synapse/http/client.py +++ b/synapse/http/client.py
@@ -768,7 +768,6 @@ class SimpleHttpClient(BaseHttpClient): request if it were otherwise caught in a blacklist. use_proxy: Whether proxy settings should be discovered and used from conventional environment variables. - connection_pool: The connection pool to use for this client's agent. """ def __init__( @@ -778,7 +777,6 @@ class SimpleHttpClient(BaseHttpClient): ip_whitelist: Optional[IPSet] = None, ip_blacklist: Optional[IPSet] = None, use_proxy: bool = False, - connection_pool: Optional[HTTPConnectionPool] = None, ): super().__init__(hs, treq_args=treq_args) self._ip_whitelist = ip_whitelist @@ -791,12 +789,22 @@ class SimpleHttpClient(BaseHttpClient): self.reactor, self._ip_whitelist, self._ip_blacklist ) + # the pusher makes lots of concurrent SSL connections to Sygnal, and tends to + # do so in batches, so we need to allow the pool to keep lots of idle + # connections around. + pool = HTTPConnectionPool(self.reactor) + # XXX: The justification for using the cache factor here is that larger + # instances will need both more cache and more connections. + # Still, this should probably be a separate dial + pool.maxPersistentPerHost = max(int(100 * hs.config.caches.global_factor), 5) + pool.cachedConnectionTimeout = 2 * 60 + self.agent: IAgent = ProxyAgent( self.reactor, hs.get_reactor(), connectTimeout=15, contextFactory=self.hs.get_http_client_context_factory(), - pool=connection_pool, + pool=pool, use_proxy=use_proxy, )