Il primo test di carico: quanto traffico regge davvero, misurato

«Regge mille utenti» è una frase, non un numero. Un test di carico la trasforma in una misura: il punto esatto in cui il vostro sistema smette di rispondere bene.

9 minSviluppatori, CTO, chi gestisce un sito o un'app in produzione

Cosa portare a casa

Risposta breve

Un test di carico simula molti utenti che usano l'applicazione insieme, per scoprire fino a che punto risponde bene e dove comincia a cedere. Non serve a rassicurarsi che «regge»: serve a trovare il numero oltre il quale non regge più, così da conoscerlo prima del giorno in cui quel numero arriva da solo — una campagna, un Black Friday, una comparsa in televisione.

La capacità reale non è un numero un po' più basso del previsto: oltre una certa soglia il sistema non rallenta gradualmente, crolla.

La legge di Little spiega perché: gli utenti in attesa crescono col prodotto fra ritmo di arrivo e tempo di risposta, e quando il tempo di risposta sale, la coda esplode.

k6 è uno strumento gratuito e open source: bastano poche righe per il primo test.

Il test va fatto su un ambiente di prova o in una finestra concordata, avvisando il fornitore del cloud: un test di carico è, di fatto, un carico vero.

Data Hub

CONSOO

Torna alle guide

Prima di lanciarlo: dove e con quale permesso

Cosa misurate, e perché non è «quanti utenti»

La domanda giusta non è «quanti utenti regge» ma «a partire da quanti utenti i tempi di risposta smettono di essere accettabili». Un sistema non passa da «va bene» a «è caduto» in un istante: prima rallenta. Il test serve a trovare il punto in cui il rallentamento diventa inaccettabile — quello, non il momento del crollo, è la vostra capacità utile.

il tempo di risposta sotto cui sta il 95% delle richieste: molto più onesto della media, che nasconde i casi peggiori
p95il tempo di risposta sotto cui sta il 95% delle richieste: molto più onesto della media, che nasconde i casi peggiori
la quota di errori oltre la quale il test dice che il punto di rottura è vicino
< 1%la quota di errori oltre la quale il test dice che il punto di rottura è vicino
il punto in cui la curva dei tempi svolta verso l'alto: è lì la capacità reale
il ginocchioil punto in cui la curva dei tempi svolta verso l'alto: è lì la capacità reale

La legge di Little: perché il crollo è improvviso

C'è una ragione matematica per cui i sistemi non degradano dolcemente. La legge di Little dice che il numero medio di richieste presenti nel sistema è uguale al ritmo con cui arrivano moltiplicato per il tempo che ciascuna passa dentro. Finché il tempo di risposta è basso, la coda resta corta. Ma appena il sistema si satura il tempo di risposta sale, e siccome moltiplica il ritmo d'arrivo, la coda si allunga, il che allunga ancora i tempi: è una spirale. Ecco perché oltre una certa soglia bastano pochi utenti in più per far passare tutto da lento a fermo.

L = λ × W — il numero di richieste nel sistema è il ritmo di arrivo per il tempo di permanenza.

Legge di Little (teoria delle code)

Il primo test con k6, in pratica

k6 è uno strumento gratuito e open source pensato apposta per questo. Il test si descrive in un piccolo file: si dice quale indirizzo chiamare e come far salire il numero di utenti virtuali nel tempo. L'idea del primo test è una rampa: si parte da pochi utenti e si sale a gradini, tenendo d'occhio quando i tempi di risposta escono dalla soglia che avete deciso accettabile.

  1. 01

    Decidete la soglia accettabile, prima di partire

    Per esempio: il 95% delle richieste deve stare sotto 800 millisecondi e gli errori sotto l'1%. Scriverla prima evita di adattare il giudizio al risultato dopo.

  2. 02

    Scegliete un percorso realistico

    Non solo la home. Il percorso che conta è quello che fa lavorare il sistema: la ricerca, l'aggiunta al carrello, l'apertura di una scheda che interroga il database. Un test sulla sola home misura la pagina più leggera che avete.

  3. 03

    Impostate una rampa a gradini

    Fate salire gli utenti virtuali per fasi — per esempio 50, poi 100, poi 200, poi 400 — con qualche minuto per gradino. Vi serve vedere come cambia il comportamento salendo, non solo il picco.

  4. 04

    Lanciate e guardate la curva dei tempi

    Mentre gli utenti salgono, il tempo di risposta p95 all'inizio resta piatto. A un certo punto svolta verso l'alto. Quel punto — il ginocchio — è la vostra capacità reale.

  5. 05

    Confrontatelo con il traffico che vi aspettate

    Se il ginocchio è a 300 utenti insieme e nel picco più alto dell'anno ne avete 120, dormite tranquilli. Se è a 300 e la campagna in tv ve ne porterà un migliaio nello stesso minuto, avete appena scoperto una cosa importante con settimane di anticipo.

Come leggere il risultato senza ingannarsi

Cosa vi sta dicendo il test
Cosa vedeteCosa significa
I tempi restano piatti fino alla fine della rampaNon avete trovato il punto di rottura: il test era troppo leggero, rilanciate spingendo più su
I tempi salgono dolcemente e in modo costanteIl sistema scala bene nell'intervallo provato: buon segno
I tempi svoltano di colpo verso l'altoAvete trovato il ginocchio: quello è il numero da ricordare
Compaiono errori prima che i tempi salganoQualcosa si rompe per motivi non di velocità (connessioni al database esaurite, limiti di configurazione): va indagato a parte

Risorse collegate utili

Domande frequenti

Il mio piano hosting dice «fino a 10.000 visite al giorno». Non è già la risposta?

No, ed è la trappola più comune. Diecimila visite in un giorno sono in media sette al minuto: nessun problema. Ma le stesse diecimila concentrate nei dieci minuti dopo uno spot in tv sono mille al minuto, un altro pianeta. Il numero del piano è una media su 24 ore; il test misura cosa succede nel minuto peggiore, che è l'unico che conta.

Posso fare il test direttamente sul sito in produzione?

Si può, ma con cautela: in una finestra a basso traffico, partendo leggeri, e avendo avvisato il fornitore del cloud. Meglio ancora è avere un ambiente di prova che somigli alla produzione. Un test di carico spinto contro la produzione in orario di punta è indistinguibile, per gli effetti, da un attacco che vi manda giù il sito da soli.

k6 è davvero gratis?

Lo strumento da riga di comando è gratuito e open source, e basta per il primo test e per molti successivi. Esistono servizi a pagamento per lanciare test molto grandi da più parti del mondo o per conservare lo storico, ma non servono per cominciare: il valore del primo test sta nel metodo, non nel prezzo dello strumento.

Che differenza c'è fra test di carico e stress test?

Il test di carico misura come si comporta il sistema al traffico che vi aspettate. Lo stress test lo spinge di proposito oltre, per vedere come cede e — soprattutto — come si riprende quando l'ondata passa. Sono domande diverse: la prima è «reggo il mio picco?», la seconda è «quando cado, mi rialzo da solo o resto giù?».

Avete trovato il vostro ginocchio e volete spostarlo più in là, o avete un evento in arrivo e non volete scoprire il limite quel giorno? Facciamo il test insieme e vi diciamo cosa cede per primo. Consulenza gratuita.

CONSOO trasforma idee su software, AI e integrazioni in un percorso tecnico chiaro per PMI.

  • 30 minuti, online
  • Nessun impegno
  • Analisi del tuo caso reale
  • Risposta entro 24 ore