Espressioni come "50K connessioni" o "100 thread simultanei", che vedi spesso nei pacchetti proxy, indicano una sola cosa: il numero di connessioni TCP che puoi tenere aperte contemporaneamente. Questo limite determina direttamente quanto velocemente puoi lavorare e, quando viene superato, i messaggi di errore sono spesso fuorvianti.
In questo articolo vediamo che cos'è la concorrenza, come si calcola il valore corretto e come diagnosticare il superamento del limite.
Concorrenza e frequenza delle richieste non sono la stessa cosa
Due concetti vengono continuamente confusi:
La forma semplice della legge di Little: frequenza delle richieste = concorrenza ÷ durata media della richiesta. Se hai 20 connessioni simultanee e ogni richiesta dura in media 500 ms, puoi inviare 40 richieste al secondo. Se la durata della richiesta sale a 2 secondi, con la stessa concorrenza invii solo 10 richieste al secondo.
Un proxy lento rallenta il tuo lavoro senza che la concorrenza aumenti. Per questo la latenza è spesso più determinante del limite di concorrenza.
Dove viene applicato il limite?
Il limite di concorrenza non esiste in un solo punto, ma in più punti della catena:
Aprire 200 thread dalla tua parte non serve a nulla se il provider ti limita a 50; le connessioni in eccesso restano in coda o ricevono un errore.
Sintomi del superamento del limite
Quando superi il limite di concorrenza non ricevi un messaggio esplicito di "limite superato". I sintomi tipici sono questi:
Distinzione fondamentale: il 429 arriva dalla destinazione, il reset di connessione dal proxy, l'EMFILE dalla tua macchina. I tre richiedono soluzioni diverse.
Come trovare la concorrenza corretta
Invece del calcolo teorico, l'approccio sperimentale è più affidabile. Esegui un test di carico progressivo:
Parti da valori bassi
Invia 200 richieste con 5 connessioni simultanee. Registra la durata media e il tasso di successo.
Raddoppia
Procedi con 10, 20, 40, 80… A ogni passo ripeti la stessa misurazione.
Trova il punto di rottura
Nel momento in cui il throughput totale (richieste/s) smette di crescere e la durata media inizia a salire, sei vicino al limite reale.
Lavora al 70%
Usa circa il 70% del punto di rottura come valore di produzione. Questo margine protegge dalle fluttuazioni nel corso della giornata.
La curva del throughput si appiattisce tra 40 e 80 mentre la latenza schizza. Oltre questo punto aumentare la concorrenza aggiunge solo tempo di attesa.
Perché il pool di connessioni (keep-alive) è importante?
Eseguire un nuovo handshake TCP e TLS per ogni richiesta è costoso sia in termini di latenza sia di concorrenza. Riutilizzare la connessione (keep-alive) dà un throughput molto più alto a parità di concorrenza:
La dimensione del pool del client non deve superare la concorrenza consentita dal provider. Se la supera, le connessioni in eccesso vengono stabilite e chiuse subito, e il costo dell'handshake va sprecato.
Relazione tra concorrenza e numero di IP
Aumentare la concorrenza aumenta anche l'intensità delle richieste in uscita dallo stesso IP. Se il sito target applica un rate limit per IP, aumentare la concorrenza su un solo IP porta direttamente al blocco. L'approccio corretto è scalare la concorrenza insieme al numero di IP .
Non superare 1–2 connessioni simultanee per IP per ogni target. Se vuoi inviare 60 richieste simultanee, ti servono almeno 30–60 IP di uscita diversi. Per il dimensionamento del pool il nostro articolo sul pool di proxy consultalo.
Gestione della velocità rispettosa del target
Un aspetto importante quanto la concorrenza è distribuire le richieste nel tempo. Invece di inviare 40 richieste nello stesso istante, distribuirle con piccoli ritardi appare più naturale al target e previene l'accumulo in coda.
- Aggiungi jitter: Un'attesa casuale tra 150 e 350 ms, invece di 200 ms fissi, riduce le tracce da bot.
- Usa un token bucket: Un token bucket che genera N richieste al secondo impedisce i picchi improvvisi.
- Applica il backoff: Quando ricevi un 429, riduci gradualmente la concorrenza e riaumentala lentamente quando torna il successo.
- Tieni una coda separata per ogni target: Il rallentamento di un sito non deve influire sugli altri.
Limiti tipici nei diversi tipi di proxy
| Differenza tra condivisi e dedicati | Concorrenza tipica | Fattore limitante |
|---|---|---|
| Datacenter | Alta — centinaia | Banda e rate limit del target |
| ISP | Medio-alta | Tolleranza del target per IP |
| Residential | Media — in base al piano | Quota dell'account presso il provider |
| Mobile | Bassa | Singolo dispositivo e connessione dell'operatore |
I proxy mobile, uscendo attraverso un unico modem fisico, offrono per loro natura una concorrenza bassa; in compenso hanno il punteggio di affidabilità più alto. Per i dettagli al nostro articolo sui proxy mobile puoi consultarlo.
Riepilogo
La concorrenza non determina la velocità da sola, ma insieme alla latenza. Il modo per trovare il valore corretto passa da un test di carico sperimentale: individua il punto in cui il throughput si appiattisce e la latenza schizza, e lavora al 70% di quel valore. Fissa il pool di connessioni su questo valore, scala la concorrenza insieme al numero di IP e applica il backoff quando arriva un 429. Per misurare la latenza dei tuoi proxy attuali test del ping e controllo proxy i nostri strumenti.