From dd84a9fd3575c5160423c4f6bbde6900b7f4cbe4 Mon Sep 17 00:00:00 2001 From: Henry Dollman Date: Sun, 29 Sep 2024 12:30:30 -0400 Subject: [PATCH] remove semaphore and limit docker host connections to 10 --- beszel/internal/agent/agent.go | 2 -- beszel/internal/agent/docker.go | 6 ++---- beszel/internal/agent/utils.go | 8 -------- 3 files changed, 2 insertions(+), 14 deletions(-) diff --git a/beszel/internal/agent/agent.go b/beszel/internal/agent/agent.go index 3fd2eb8..3ab7a57 100644 --- a/beszel/internal/agent/agent.go +++ b/beszel/internal/agent/agent.go @@ -20,7 +20,6 @@ type Agent struct { cpuModel string // CPU model of the system cores int // Number of cores of the system threads int // Number of threads of the system - sem chan struct{} // Semaphore to limit concurrent access to docker api debug bool // true if LOG_LEVEL is set to debug fsNames []string // List of filesystem device names being monitored fsStats map[string]*system.FsStats // Keeps track of disk stats for each filesystem @@ -35,7 +34,6 @@ type Agent struct { func NewAgent() *Agent { return &Agent{ - sem: make(chan struct{}, 15), containerStatsMap: make(map[string]*container.Stats), containerStatsMutex: sync.RWMutex{}, netIoStats: system.NetIoStats{}, diff --git a/beszel/internal/agent/docker.go b/beszel/internal/agent/docker.go index 8dd555c..d89bdce 100644 --- a/beszel/internal/agent/docker.go +++ b/beszel/internal/agent/docker.go @@ -47,9 +47,7 @@ func (a *Agent) getDockerStats() ([]*container.Stats, error) { a.deleteContainerStatsSync(ctr.IdShort) } wg.Add(1) - a.acquireSemaphore() go func() { - defer a.releaseSemaphore() defer wg.Done() stats, err := a.getContainerStats(ctr) if err != nil { @@ -177,8 +175,8 @@ func newDockerClient() *http.Client { ForceAttemptHTTP2: false, IdleConnTimeout: 90 * time.Second, DisableCompression: true, - MaxConnsPerHost: 20, - MaxIdleConnsPerHost: 20, + MaxConnsPerHost: 10, + MaxIdleConnsPerHost: 10, DisableKeepAlives: false, } diff --git a/beszel/internal/agent/utils.go b/beszel/internal/agent/utils.go index 8d47efb..5a46080 100644 --- a/beszel/internal/agent/utils.go +++ b/beszel/internal/agent/utils.go @@ -2,14 +2,6 @@ package agent import "math" -func (a *Agent) acquireSemaphore() { - a.sem <- struct{}{} -} - -func (a *Agent) releaseSemaphore() { - <-a.sem -} - // delete container stats from map using mutex func (a *Agent) deleteContainerStatsSync(id string) { a.containerStatsMutex.Lock()