QUIC is an emerging connection-oriented transport layer protocol that aims to support low-latency and highly secure communication between users and cloud services. Cloud load balancers distribute incoming QUIC connections towards a pool of backend servers where applications run. The sheer size of today’s clouds requires to deploy large pools of load balancing instances across multi-core servers. Today, once a connection is handled by a load balancing instance, the handling of the connection cannot be delegated to another instance which is possibly running on an underutilized server or core. Recent work has shown that such imbalances lead to poor utilization of the server resources when implementing the load balancer component itself. Moving the handling of a connection from one load balancing instance to another one is key to achieve uniform distribution of the workload among the load balancing instances. This thesis discusses the system design, algorithmic principles, and evaluation of an approach to move the state of a QUIC connection from one QUIC instance to another one, a task that we call “connection migration”. Our preliminary investigation focuses on inter-CPU-core thread-based migration of QUIC connections within the same server machine with the goal of supporting different types of load balancers that dynamically spread the workload across the load balancing instances. We evaluated the performance of the proposed implementation in a real physical testbed in NSLab at KTH across different dimensions: the number of active connections, the size of the file transfers within each connection, and the number of load balancing instances. The results show that under ideal circumstances, the throughput of a server system built by an 8-core computer reaches 100MB per second and handles up to 500 client requests per second. Finally, this thesis analyzes the bottleneck of the system and the critical parts of the implementation that should be optimized for better performance. / QUIC är ett framväxande anslutningsorienterat protokoll för transportlager som syftar till att stödja låg latens och mycket säker kommunikation mellan användare och molntjänster. Molnslastbalansering distribuerar inkommande QUIC-anslutningar mot en pool av Backend-servrar där applikationer körs. Den stora storleken på dagens moln kräver att stora pooler av lastbalanseringsinstanser distribueras över flerkärniga servrar. Idag, när en anslutning hanteras av en lastbalanseringsinstanser, kan hanteringen av anslutningen inte delegeras till en annan instans som möjligen körs på en underutnyttjad server eller kärna. Senaste arbetet har visat att sådana obalanser leder till dåligt utnyttjande av serverresurserna vid implementering av själva lastbalanseringskomponenten. Att flytta hanteringen av en anslutning från en lastbalanseringsinstans till en annan är nyckeln för att uppnå enhetlig fördelning av arbetsbelastningen mellan lastbalanseringsinstanserna. Denna avhandling diskuterar systemdesign, algoritmiska principer och utvärdering av en metod för att flytta tillståndet för en QUIC-anslutning från en QUIC-instans till en annan, en uppgift som vi kallar “anslutningsmigrering”. Vår preliminära undersökning fokuserar på intel-CPU-core trådbaserad migration av QUIC-anslutningar inom samma servermaskin med målet att stödja olika typer av belastningsutjämnare som dynamiskt sprider arbetsbelastningen över lastbalanseringsinstanser. Vi utvärderade prestanda för den föreslagna implementeringen i en riktig fysisk testbädd i NSLab vid KTH över olika dimensioner: antalet aktiva anslutningar, storleken på filöverföringarna inom varje anslutning och antalet lastbalanseringsinstanser. Resultaten visar att under idealiska omständigheter når genomströmningen av ett serversystem som byggts av en 8-kärnig dator 100 MB per sekund och hanterar upp till 500 klientförfrågningar per sekund. Slutligen analyserar denna avhandling systemets flaskhals och de kritiska delarna av implementeringen som bör optimeras för bättre prestanda.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-292094 |
Date | January 2021 |
Creators | Yao, Haoran |
Publisher | KTH, Skolan för elektroteknik och datavetenskap (EECS) |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | TRITA-EECS-EX ; 2021:65 |
Page generated in 0.003 seconds