feat: dynamic health test concurrency
Auto-scale test concurrency to ~10% of proxy count, capped by test_concurrency config ceiling (default raised from 5 to 25). Prevents saturating upstream Tor when pool size varies. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -77,7 +77,7 @@ proxy_pool:
|
||||
- www.cloudflare.com
|
||||
- www.amazon.com
|
||||
test_timeout: 15
|
||||
test_concurrency: 5
|
||||
test_concurrency: 25 # max parallel tests (auto-scales to ~10% of pool)
|
||||
max_fails: 3
|
||||
state_file: "" # empty = ~/.cache/s5p/pool.json
|
||||
```
|
||||
@@ -180,7 +180,7 @@ proxy_pool:
|
||||
- www.cloudflare.com
|
||||
- www.amazon.com
|
||||
test_timeout: 15 # per-test timeout (seconds)
|
||||
test_concurrency: 5 # parallel health tests
|
||||
test_concurrency: 25 # max parallel tests (auto-scales to ~10% of pool)
|
||||
max_fails: 3 # evict after N consecutive failures
|
||||
state_file: "" # empty = ~/.cache/s5p/pool.json
|
||||
report_url: "" # POST dead proxies here (optional)
|
||||
@@ -209,6 +209,10 @@ by performing a TLS handshake against one of the `test_targets` (rotated
|
||||
round-robin). A successful handshake marks the proxy alive. After `max_fails`
|
||||
consecutive failures, a proxy is evicted.
|
||||
|
||||
Concurrency auto-scales to ~10% of the proxy count, capped by
|
||||
`test_concurrency` (default 25, minimum 3). For example, a pool of 73 proxies
|
||||
tests 7 at a time rather than saturating the upstream Tor node.
|
||||
|
||||
Before each health test cycle, the static chain is tested without any pool
|
||||
proxy. If the chain itself is unreachable (e.g., Tor is down), proxy tests
|
||||
are skipped entirely and a warning is logged. This prevents false mass-failure
|
||||
|
||||
Reference in New Issue
Block a user