Sviluppo software

Test di carico: a volte l’informatica è una scienza

| 20 Settembre 2019 | Andrea Maioli
cropped A volte linformatica e una scienza Instant Developer

Uno dei compiti più difficili nella creazione di applicazioni multichannel è quello della previsione delle risorse cloud necessarie a supportare un determinato carico di lavoro e, possibilmente, l’ottimizzazione di tali risorse.

Durante la fase di programmazione, infatti, è difficile tenere presente cosa succederà quando, invece che una sola, ci saranno centinaia di sessioni di lavoro contemporanee. Una singola operazione da 100 millisecondi, quasi in real time, può trasformarsi in una attesa di 100 secondi, assolutamente inaccettabile.

Anche a livello sistemistico la sfida è grande: scegliere la giusta architettura cloud è decisivo e le possibilità sono molteplici. Usare container o meno? Che tipo di orchestrazione? Quali sistemi operativi e su quali configurazioni di virtualizzazione? Nella nostra esperienza abbiamo rilevato variazioni di performance anche di un fattore 50.

Infine è necessario considerare a quale tipo di carico il sistema sarà sottoposto: che cosa faranno gli utenti? Quante sessioni di lavoro contemporanee dovremo supportare? A che tipo di stress sarà sottoposto il sistema? CPU, memoria, I/O o rete?

Ecco perché oggi la previsione dell’utilizzo delle risorse cloud è spesso più simile alle previsioni del tempo piuttosto che ad una scienza esatta. Finché gli utenti sono pochi va sempre bene, ma quando il sistema è in produzione e il back end inizia a cedere sotto il carico di lavoro, non è facile capire di chi è la colpa e come risolvere in fretta senza moltiplicare i costi di gestione.

Perché fare i test di carico

Uno strumento insostituibile per ottenere una previsione più precisa è un sistema per l’esecuzione di test di carico. Esistono diverse soluzioni disponibili, alcune delle principali sono descritte qui. Questi sistemi utilizzano una serie di server nel cloud che simulano le richieste di un numero a piacere di utenti verso il backend da testare e poi misurano i tempi di risposta. 

Per chi utilizza Instant Developer Cloud, il sistema di test di carico è già integrato nella piattaforma e non ha alcun costo aggiuntivo! L’esecuzione dei test avviene in due mosse:

  1. Si utilizza l’applicazione da testare in “modalità di registrazione”, per ottenere le “sessioni campione” che simulano il comportamento reale degli utenti.
  2. Si esegue il test di carico scegliendo il numero di sessioni complessivo e la durata del test. Il sistema di backend contiene un sistema di auto-stimolazione che consente di effettuare le misure senza utilizzare server aggiuntivi nel cloud.

Il grafico in testa alla pagina mostra un esempio dei risultati del test: 1000 sessioni utente eseguite nel giro di 75 secondi, con un picco di oltre 400 sessioni contemporanee su un server cloud di taglia media, corrispondenti ad un utilizzo di CPU del 40% e a un consumo stabile di memoria.

Volete sapere com’è andata quando il sistema è entrato in produzione? Beh, come vi dicevo, a volte l’informatica è una scienza esatta ☺.

Andrea Maioli
CEO & Co-Founder
Mi occupo di Instant Developer, dalla mattina presto a notte inoltrata. Mi interesso di ingegneria del software, di natural language processing e di tutti i modi per sfruttare al meglio le nuove tecnologie.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


Potrebbe interessarti

Instant Developer Foundation e Cloud 24.5: la prima volta insieme

Il rilascio delle versioni 24.5 di Instant Developer Foundation e Instant Developer Cloud rappresenta una grande novità: è la prima occasione in cui le due...

Leggi Tutto

Integrazione di librerie JavaScript per generare barcode

Scegliere il modo giusto per generare barcode non è semplice e la decisione che prendi può fare la differenza in termini di costi e praticità.Potresti...

Leggi Tutto

Web API: il modo semplice per condividere database con Instant Developer Foundation

Utilizzare le Web API per condividere i propri database con altre applicazioni può essere a volte molto complicato. Ma, allo stesso tempo, le Web API...

Leggi Tutto

Rimani Aggiornato

Iscriviti alla nostra newsletter per ricevere aggiornamenti su novità, eventi, release, webinar e tante altre notizie sui prodotti Instant Developer.

    Presa visione dell'informativa (disponibile qui) resa da Pro Gamma SpA, acconsento al trattamento dei miei dati personali per l'invio di newsletter.*