X86 vs. ARM: An Investigation of Factors Influencing Serverless Performance
Function-as-a-Service (FaaS) platforms enable easy deployment and hosting of code known as serverless functions and have gained considerable traction among software developers. Recently, Amazon has offered ARM64 processors as an alternative to x86 for hosting serverless functions on AWS Lambda. To encourage developers to migrate code to ARM, use of ARM processors has been incentivized with a 20% discount. In this paper, we investigate the implications of adopting ARM64 processors for hosting serverless functions. We deploy and benchmark 18 distinct serverless functions that stress a variety of system resources. Additionally, we scaled up the runtime for each of our functions by increasing the work they performed using 40 incremental steps to increase runime from a few seconds to several minutes. We compared performance differences of x86 vs. ARM64 processors for our serverless function workoads and present our findings summarizing differences in: CPU utilization, function runtime, function runtime variation, and hosting costs. While only 7 of 18 functions ran faster on ARM, 15 of 18 were less expensive thanks to the cloud provider discount. Performance variation on ARM64 processors was less than half compared to x86 processors potentially from the lack of hyperthreading and lower resource contention for ARM CPUs.