Optimising Virtual Resource Mapping in Multi-Level NUMA Disaggregated Systems
Lakew, Svärd, Elmroth et al.
Disaggregated systems have a novel architecture motivated by the requirements of resource intensive applications such as social networking, search, and in-memory databases. The total amount of resources such as memory and CPU cores is very large in such systems. However, the distributed topology of disaggregated server systems result in non-uniform access latency and performance, with both NUMA aspects inside each box, as well as additional access latency for remote resources. In this work, we study the effects complex NUMA topologies on application performance and propose a method for improved, NUMA-aware, mapping for virtualized environments running on disaggregated systems. Our mapping algorithm is based on pinning of virtual cores and/or migration of memory across a disaggregated system and takes into account application performance, resource contention, and utilization. The proposed method is evaluated on a 288 cores and around 1TB memory system, composed of six disaggregated commodity servers, through a combination of benchmarks and real applications such as memory intensive graph databases. Our evaluation demonstrates significant improvement over the vanilla resource mapping methods. Overall, the mapping algorithm is able to improve performance by significant magnitude compared the default Linux scheduler used in system.
academic
Ottimizzazione della Mappatura delle Risorse Virtuali nei Sistemi Disaggregati Multi-Livello NUMA
Questo articolo esamina l'impatto delle complesse topologie NUMA sui sistemi disaggregati e propone un metodo migliorato di mappatura consapevole di NUMA. Il metodo si basa sul binding dei core virtuali e sulla migrazione della memoria, considerando complessivamente le prestazioni dell'applicazione, la contesa di risorse e l'utilizzo. La valutazione è stata condotta su un sistema disaggregato composto da 6 server commerciali con 288 core e circa 1TB di memoria, mostrando miglioramenti significativi rispetto allo scheduler Linux predefinito.
Sfide dell'Architettura Disaggregata: I sistemi disaggregati aggregano risorse da più server fisici per supportare applicazioni ad alta intensità di risorse (come social network, motori di ricerca, database in memoria), ma la topologia distribuita causa latenze di accesso non uniformi e problemi di prestazioni
Complessità NUMA Multi-Livello: Il sistema presenta contemporaneamente caratteristiche NUMA intra-macchina e latenze di accesso remoto inter-macchina, formando una topologia NUMA multi-livello complessa
Ottimizzazione in Ambienti Virtualizzati: Gli scheduler Linux esistenti non riescono a gestire efficacemente questo scenario complesso di mappatura delle risorse
Le applicazioni moderne richiedono risorse di calcolo che superano le capacità di una singola macchina, rendendo i sistemi disaggregati una direzione di sviluppo importante
Le strategie di mappatura delle risorse influenzano direttamente le prestazioni dell'applicazione, e una mappatura inadeguata può causare degradazioni significative
È necessario considerare simultaneamente la contesa di risorse, la località e il grado di interferenza in un'ottimizzazione integrata
Primo Studio Empirico Approfondito su Sistemi Disaggregati: Misurazioni approfondite su hardware disaggregato reale, considerando contesa di risorse, località e grado di interferenza
Classificazione delle Applicazioni e Sistema di Metriche di Prestazioni: Classificazione delle applicazioni utilizzando il metodo Animal Classes, con IPC e MPI come metriche di prestazioni
Algoritmo di Mappatura Consapevole di NUMA: Propone un algoritmo di mappatura online che considera la classificazione dell'applicazione, la prossimità delle risorse e i contatori di prestazioni hardware in tempo di esecuzione
Miglioramento Significativo delle Prestazioni: Realizza un miglioramento medio di 50 volte delle prestazioni sul sistema reale
Input: Richieste di macchine virtuali (numero di core CPU, requisiti di memoria), classificazione dell'applicazione, stato delle risorse di sistema
Output: Schema di mappatura ottimale da vCPU virtuali a CPU fisiche
Vincoli: Evitare l'oversuscription di risorse, minimizzare la distanza NUMA, ridurre l'interferenza tra applicazioni
Basato sul metodo di classificazione Animal Classes, le applicazioni sono divise in tre categorie:
Sheep (Tipo Mite): Applicazioni non facilmente influenzate dalla condivisione della cache
Rabbit (Tipo Sensibile): Applicazioni con prestazioni veloci ma che si degradano facilmente a causa di allocazione insufficiente della cache o condivisione
Devil (Tipo Distruttivo): Applicazioni che accedono frequentemente alla cache con alti tassi di miss, influenzando le prestazioni di altre applicazioni
Contemporaneamente, vengono ulteriormente classificate in base alla sensibilità della memoria remota in due categorie: sensibile/insensibile.
Fase 1: Gestione della Remoting (al Momento dell'Arrivo dell'Applicazione)
if VMi is a new arrival then
if Free slot is suitable for VMi given ci, ai then
Map VMi directly
else
Reshuffle existing VMs to create suitable slot
Map VMi to new slot
Fase 2: Minimizzazione dell'Interferenza (Ottimizzazione in Tempo di Esecuzione)
for each VMi do
if (expected_perf - measured_perf)/expected_perf ≥ Threshold then
Add VMi to affected list
for each affected VM do
Build potential neighbor list based on class compatibility
Compute new configuration with minimal reshuffle
Remap if beneficial
Miglioramento Significativo delle Prestazioni: L'algoritmo di mappatura consapevole di NUMA proposto realizza un miglioramento medio di 50 volte rispetto allo scheduler predefinito
Miglioramento della Stabilità: Riduce significativamente la variabilità delle prestazioni, fornendo prestazioni prevedibili
Efficacia della Classificazione delle Applicazioni: Il metodo di classificazione basato su Animal Classes può guidare efficacemente le decisioni di mappatura delle risorse
Ipotesi di Classificazione Statica: La classificazione attuale delle applicazioni è statica e non considera i cambiamenti dinamici nel comportamento dell'applicazione
Tipi di Carichi di Lavoro Limitati: La valutazione si concentra principalmente su tipi specifici di applicazioni
Piattaforma Hardware Specifica: Gli esperimenti sono stati condotti solo sulla piattaforma NumaConnect
Ottimizzazione dello Scheduler Linux: Ricerca degli effetti dell'ottimizzazione dello scheduler Linux per ridurre la casualità
Tecniche di Migrazione della Memoria: Utilizzo della tecnica di migrazione della memoria "memory follows cores" in libvirt
Classificazione Dinamica delle Applicazioni: Sviluppo di meccanismi di analisi del comportamento dell'applicazione in tempo di esecuzione e reclassificazione dinamica
Dipendenza dalla Piattaforma: La ricerca si basa principalmente sulla piattaforma NumaConnect, l'applicabilità su altri sistemi disaggregati richiede verifica
Copertura dei Carichi di Lavoro: I tipi di applicazioni valutate sono relativamente limitati, richiedono verifica con carichi di lavoro più diversificati
Dinamicità Insufficiente: L'adattabilità dell'algoritmo ai cambiamenti dinamici del carico di sistema richiede ulteriore ricerca
Mancanza di Analisi Teorica: Manca l'analisi teorica della complessità e della convergenza dell'algoritmo
Questo articolo cita 26 riferimenti correlati, coprendo importanti risultati di ricerca in molteplici settori inclusi sistemi disaggregati, ottimizzazione NUMA e tecnologie di virtualizzazione, fornendo una base teorica solida per il lavoro di ricerca.
Valutazione Complessiva: Questo è un articolo con importanti contributi nel campo della gestione delle risorse nei sistemi disaggregati. Attraverso un rigoroso design sperimentale e una valutazione completa delle prestazioni, dimostra l'efficacia dell'algoritmo di mappatura consapevole di NUMA. Nonostante alcune limitazioni, il suo valore pratico e il contributo accademico sono entrambi significativi, gettando le basi per lo sviluppo futuro del settore.