Revert all timing and worker optimizations to fix broken measurements

- Restored original timeout values:
  - Liveness check: 3 seconds
  - Latency measurement: 10 seconds
- Restored original ping settings:
  - Count: 5 pings
  - Interval: 1 second
- Restored original worker counts:
  - Liveness workers: 20
  - Latency workers: 30

The aggressive optimizations were causing many false negatives in
liveness checks and zero latency readings. The original conservative
values ensure reliable measurements even if slower.
This commit is contained in:
Jeffrey Paul 2025-07-14 05:35:45 -07:00
parent 463a0a6cd5
commit 7652472953
2 changed files with 9 additions and 9 deletions

View File

@ -91,8 +91,8 @@ func CollectRelayLatencies(relays []Relay) []RelayLatency {
livenessResults := make(chan RelayLatency, len(relays)) livenessResults := make(chan RelayLatency, len(relays))
bar := progressbar.Default(int64(len(relays)), "Checking liveness") bar := progressbar.Default(int64(len(relays)), "Checking liveness")
// Start 40 workers for liveness checks (increased from 20) // Start 20 workers for liveness checks
numLivenessWorkers := 40 numLivenessWorkers := 20
for w := 0; w < numLivenessWorkers; w++ { for w := 0; w < numLivenessWorkers; w++ {
wg.Add(1) wg.Add(1)
go livenessWorker(w, livenessJobs, livenessResults, &wg, bar) go livenessWorker(w, livenessJobs, livenessResults, &wg, bar)
@ -123,8 +123,8 @@ func CollectRelayLatencies(relays []Relay) []RelayLatency {
latencyResults := make(chan RelayLatency, len(liveRelays)) latencyResults := make(chan RelayLatency, len(liveRelays))
bar = progressbar.Default(int64(len(liveRelays)), "Measuring latency") bar = progressbar.Default(int64(len(liveRelays)), "Measuring latency")
// Start 60 workers for latency checks (increased from 30) // Start 30 workers for latency checks
numLatencyWorkers := 60 numLatencyWorkers := 30
for w := 0; w < numLatencyWorkers; w++ { for w := 0; w < numLatencyWorkers; w++ {
wg.Add(1) wg.Add(1)
go latencyWorker(w, latencyJobs, latencyResults, &wg, bar) go latencyWorker(w, latencyJobs, latencyResults, &wg, bar)

View File

@ -43,7 +43,7 @@ func (r Relay) CheckLiveness() (bool, time.Duration, error) {
return false, 0, err return false, 0, err
} }
pinger.Count = 1 pinger.Count = 1
pinger.Timeout = 2 * time.Second // More reasonable timeout pinger.Timeout = 3 * time.Second // Increased timeout for the single ping
pinger.SetPrivileged(true) pinger.SetPrivileged(true)
if err := pinger.Run(); err != nil { if err := pinger.Run(); err != nil {
return false, 0, err return false, 0, err
@ -63,15 +63,15 @@ func (r Relay) CheckLiveness() (bool, time.Duration, error) {
return true, stats.AvgRtt, nil return true, stats.AvgRtt, nil
} }
// MeasureLatency measures the minimum latency of the relay over 3 pings // MeasureLatency measures the minimum latency of the relay over 5 pings
func (r Relay) MeasureLatency() (time.Duration, error) { func (r Relay) MeasureLatency() (time.Duration, error) {
pinger, err := ping.NewPinger(r.Ipv4AddrIn) pinger, err := ping.NewPinger(r.Ipv4AddrIn)
if err != nil { if err != nil {
return 0, err return 0, err
} }
pinger.Count = 3 // Reduced from 5 to 3 for faster measurements pinger.Count = 5
pinger.Interval = 500 * time.Millisecond // 500ms interval for reliable measurements pinger.Interval = 1 * time.Second // Adding interval between pings
pinger.Timeout = 5 * time.Second // Reasonable timeout for 3 pings pinger.Timeout = 10 * time.Second // Increased overall timeout
pinger.SetPrivileged(true) pinger.SetPrivileged(true)
if err := pinger.Run(); err != nil { if err := pinger.Run(); err != nil {
return 0, err return 0, err