Hybrid Auto-Scaling for an Asynchronous Computationally Intensive Application

Arnthór Jónsson

9 June 2020


Sammanfattning

Molntjänster har utvecklats med snabb takt under se senaste åren. Denna utveckling ger användare möjlighet att få åtkomst till molnbaserade resurser på begäran, vilka förvärvas när en applikation kräver det och sedan återlämnas när behovet upphör. Denna karaktäristik av molnbaserade tjänster, dess elasticitet som den ofta refereras till ger upphov till en intresserad fråga om hur resurshanteringen av dessa tjänster ska ske effektivt. Det ställer krav på en avvägning mellan att minimera resurskostnader och att tillhandahålla god servicekvalité.

Valet av en automatisk skalnings motor kan ha signifikant inverkan på både resursförbrukning och servicekvvalité för molnbaserade applikationer. Container orkestrerings system som Kubernetes förlitar sig på statiska tröskelvärden och mätvärden på mätvärden i infrastrukturen såsom processor- och minnesbelastning för att skala molnapplikationer, och för att förutse arbetsbelastning som sker under körning. I detta arbete föreslås en hybridmetod för automatisk skalning som använder både reaktiva och proaktiva mätvärden för en asynkron, beräkningsmässigt intensiv applikation som används i ett publicera-prenumerera mönster.

Den föreslagna hybridmetoden jämförs med Kubernetes Horizontal Pod Auto-Scaler (HPA) med både syntetiska och verkliga arbetsbelastningar. Båda metoderna jämförs baserade på de experimentella resultaten både avseende resursanvändning och servicekvalité.

Resultaten visar att den nya hybridmetoden visade sig bättre lämpad för användning i den typ av applikation som använts i detta arbete. För de syntetiska arbetena använde hybridmodellen i genomsnitt 39,44% färre pods och uppvisade 52,97% ökat utnyttjande av CPU, samtidigt som den tillhandahöll liknande och ofta mer tillförlitlig servicekvalité jämfört med HPA. I de verkliga arbetsbelastningarna visade hybridmetoden som används i detta arbete i genomsnitt 47,26% färre kapslar än PAS. Dessutom hade den 73,78% bättre utnyttjande av CPU, samtidigt som de genomsnittliga köerna och latenstiderna var signifikant mindre.