Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Informatica distribuita, parallela e in cluster# Architettura di rete e Internet

Misurare il timing della comunicazione nel cloud

Scopri l'importanza del timing e della latenza nella comunicazione nei servizi cloud.

― 6 leggere min


Sfide della Latency nelSfide della Latency nelClouddella comunicazione cloud.Scopri i veri problemi nel tempismo
Indice

Molti servizi online dipendono dal tempo per funzionare bene. Usano certi limiti di tempo per decidere se qualcosa è andato storto o per far andare le cose più veloci. Quando le parti di un sistema devono comunicare tra loro, si aspettano che i messaggi arrivino puntuali. Se un messaggio è in ritardo, può causare problemi, come il sistema che pensa che qualcosa sia fallito, o potrebbe non funzionare al meglio. Questo è particolarmente vero nel cloud, dove molti utenti condividono Risorse, portando a prestazioni imprevedibili.

Per aiutare con questo, abbiamo sviluppato uno strumento chiamato Cloud Latency Tester (CLT). Questo strumento misura quanto tempo ci vuole per inviare messaggi tra diversi computer nel cloud. Usando CLT, gli ingegneri possono meglio impostare quei limiti di tempo importanti basandosi su dati reali, invece di ipotesi.

Importanza del Tempismo nella Comunicazione

L'affidabilità dei servizi cloud è cruciale per molte aziende e utenti. Recentemente, le interruzioni da parte dei principali fornitori di cloud hanno causato disagi in diversi servizi, sottolineando l'importanza del tempismo nella comunicazione. Quando i sistemi sono progettati per essere tolleranti ai guasti, spesso creano più copie di dati e hanno capacità extra per affrontare i problemi. Tuttavia, questi sistemi dipendono anche dal tempismo per rispondere quando qualcosa va storto. Ad esempio, se una parte del sistema fallisce, deve essere rilevata rapidamente per passare a una riserva. Questa rilevazione si basa su limiti di tempo che sono impostati secondo le attese di consegna dei messaggi.

Oggi, molti sistemi si basano su aspettative di tempismo rigorose per la comunicazione. Alcuni sistemi devono completare compiti nel giro di millisecondi per funzionare efficacemente. Quando queste assunzioni temporali vengono violate, può portare a una diminuzione delle prestazioni, rendendo più difficile rilevare guasti e causando ritardi.

Sfide negli Ambienti Cloud

Gli ambienti cloud sono condivisi da molti utenti, il che significa che le prestazioni possono variare notevolmente. Questo è spesso dovuto a qualcosa chiamato "sindrome del vicino rumoroso," dove l'attività di un utente può influenzare negativamente l'esperienza di un altro. I fornitori di cloud cercano di gestire questo problema, ma anche piccole modifiche nelle prestazioni dell'infrastruttura sottostante possono avere grandi impatti sulle prestazioni del sistema.

Capire come il tempismo della comunicazione imprevedibile può influenzare un sistema è vitale. Ad esempio, se un sistema si aspetta che i messaggi arrivino entro 10 millisecondi, ma ci sono ritardi frequenti, continuerà a cercare di riconfigurarsi ripetutamente, usando le risorse in modo inefficiente. I sistemi che si basano su una consegna tempestiva dei messaggi possono subire oscillazioni nelle prestazioni, portando a risorse sprecate e potenzialmente creando un ciclo di guasti.

Misurare la Latenza con CLT

Per studiare i ritardi nella comunicazione nel cloud, abbiamo introdotto il Cloud Latency Tester (CLT). Questo strumento può essere installato su più macchine virtuali (VM) attraverso vari ambienti cloud, permettendo di misurare la latenza di andata e ritorno tra diversi nodi. Invia messaggi di varie dimensioni avanti e indietro e registra quanto tempo impiega per viaggiare.

Usando CLT, abbiamo raccolto dati da tre fornitori di cloud principali: Amazon Web Services (AWS), Google Cloud Platform (GCP) e Microsoft Azure. Ci siamo concentrati su quanto ci mettono i messaggi a viaggiare tra le VM nella stessa zona di disponibilità e tra zone diverse.

Risultati Chiave sulla Latenza

  1. Variabilità della Latenza: I nostri dati hanno mostrato che la latenza può variare significativamente, anche all'interno della stessa regione. Ad esempio, il tempo necessario ai messaggi per viaggiare all'interno della stessa sottorete può essere molto diverso rispetto alle comunicazioni tra diverse sottoreti o zone di disponibilità.

  2. Modelli Ciclici: In alcuni cloud, abbiamo osservato che le metriche di latenza seguivano modelli prevedibili nel tempo. Questo indica che i periodi di alta attività o specifici cicli di utilizzo potrebbero influenzare le prestazioni.

  3. Impatto della Configurazione: Come le VM sono posizionate nel cloud influisce sulla latenza. Se le VM si trovano in diversi data center, anche all'interno della stessa zona di disponibilità, la comunicazione può essere più lenta del previsto a causa della distanza fisica.

  4. Dimensione del Payload Conta: La dimensione dei messaggi inviati influisce anche sulla latenza. In generale, messaggi più grandi richiedono più tempo per essere inviati. Se un messaggio supera l'unità massima di trasmissione (MTU), potrebbe dover essere suddiviso in più pacchetti, causando ulteriori ritardi.

  5. Comunicazione di Quorum: Alcuni sistemi usano un metodo chiamato quorum in cui più nodi devono rispondere prima che un compito sia considerato completato. Questo aiuta a mascherare i ritardi dai nodi lenti, migliorando la latenza complessiva.

Impatto dei Vicini Rumorosi

Il cloud computing coinvolge più utenti che condividono le stesse risorse fisiche, come server. Idealmente, ogni utente dovrebbe ricevere una quantità equa di risorse quando ne ha bisogno. Tuttavia, la competizione per le risorse può portare alcuni utenti a influenzare le prestazioni di altri, specialmente su scale temporali più brevi. Questo problema, conosciuto come sindrome del vicino rumoroso, può causare significativi ritardi per alcune applicazioni, in particolare durante i periodi di alta domanda.

I fornitori di cloud hanno messo in atto varie misure per affrontare questo problema, inclusa l'isolamento delle risorse e politiche di utilizzo equo. Tuttavia, la sfida del vicino rumoroso persiste, particolarmente su piccole scale temporali dove i rapido aggiustamenti non sono possibili.

Comprendere la Latenza nei Sistemi Cloud

Il tempismo della comunicazione nei sistemi cloud coinvolge più di semplici ritardi di rete. Fattori come hardware del server, gestione del software e sistemi operativi possono tutti contribuire alla latenza. Ad esempio, il modo in cui una macchina virtuale gestisce i dati può introdurre variazioni difficili da prevedere.

Quando abbiamo esaminato attentamente la latenza in diversi cloud, abbiamo trovato che ciascun fornitore aveva modelli unici. AWS aveva prestazioni più stabili, mentre Azure mostrava fluttuazioni notevoli. GCP tendeva a esibirsi a metà strada tra i due.

Riepilogo dei Risultati

Attraverso i nostri test, abbiamo appreso che:

  • I sistemi cloud spesso sperimentano picchi enormi e inaspettati nella latenza, a volte superando di gran lunga i livelli normali.
  • Non tutti i nodi si comportano allo stesso modo; alcuni possono mostrare costantemente migliori prestazioni di altri.
  • Le assunzioni temporali basate su latenze medie possono portare a significativi problemi di prestazione se non vengono regolarmentevalidate rispetto a misurazioni reali.

Conclusione

I nostri sforzi con CLT hanno dimostrato che i ritardi nella comunicazione nel cloud possono essere imprevedibili e variare ampiamente. Questi risultati sono essenziali per ingegneri e designer che lavorano su applicazioni cloud-native, poiché devono tenere conto di questi potenziali ritardi quando impostano assunzioni di tempo e architetture di sistema.

Man mano che gli ambienti cloud diventano più complessi, comprendere e misurare la latenza della comunicazione continuerà a essere fondamentale per sviluppare e mantenere sistemi efficaci. Utilizzando dati reali da strumenti come CLT, gli sviluppatori possono prendere decisioni più informate, garantendo migliori prestazioni e affidabilità nelle loro applicazioni. L'obiettivo è impostare aspettative realistiche basate su dati piuttosto che su assunzioni, aprendo la strada a operazioni più fluide nel cloud computing.

Fonte originale

Titolo: Cloudy Forecast: How Predictable is Communication Latency in the Cloud?

Estratto: Many systems and services rely on timing assumptions for performance and availability to perform critical aspects of their operation, such as various timeouts for failure detectors or optimizations to concurrency control mechanisms. Many such assumptions rely on the ability of different components to communicate on time -- a delay in communication may trigger the failure detector or cause the system to enter a less-optimized execution mode. Unfortunately, these timing assumptions are often set with little regard to actual communication guarantees of the underlying infrastructure -- in particular, the variability of communication delays between processes in different nodes/servers. The higher communication variability holds especially true for systems deployed in the public cloud since the cloud is a utility shared by many users and organizations, making it prone to higher performance variance due to noisy neighbor syndrome. In this work, we present Cloud Latency Tester (CLT), a simple tool that can help measure the variability of communication delays between nodes to help engineers set proper values for their timing assumptions. We also provide our observational analysis of running CLT in three major cloud providers and share the lessons we learned.

Autori: Owen Hilyard, Bocheng Cui, Marielle Webster, Abishek Bangalore Muralikrishna, Aleksey Charapko

Ultimo aggiornamento: 2023-09-22 00:00:00

Lingua: English

URL di origine: https://arxiv.org/abs/2309.13169

Fonte PDF: https://arxiv.org/pdf/2309.13169

Licenza: https://creativecommons.org/licenses/by/4.0/

Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.

Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.

Articoli simili