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.


Potrebbe Interessarti

Instant Developer Foundation 22.5 e Fluid: il futuro comincia da qui

La versione 22.5 di Instant Developer Foundation rappresenta un passo tangibile verso il futuro di Instant Developer. Il nuovo motore grafico Fluid è infatti il...

Leggi Tutto

Webinar: Le novità di Instant Developer Cloud 22.5

Nel webinar sulle novità della release 22.5 di Instant Developer Cloud , Giuseppe Lanzi, responsabile dei reparti Customer Care e Systems e Paolo Giannelli, responsabile...

Leggi Tutto

Instant Developer Cloud 22.5: esperienze migliori per te e il tuo software

Instant Developer Cloud 22.5 è una versione progettata per una migliore esperienza di utilizzo da parte degli sviluppatori e di fruizione delle applicazioni per gli...

Leggi Tutto

Rimani Aggiornato

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