  Serverless functions are a cloud computing paradigm where the provider takes
care of resource management tasks such as resource provisioning, deployment,
and auto-scaling. The only resource management task that developers are still
in charge of is selecting how much resources are allocated to each worker
instance. However, selecting the optimal size of serverless functions is quite
challenging, so developers often neglect it despite its significant cost and
performance benefits. Existing approaches aiming to automate serverless
functions resource sizing require dedicated performance tests, which are
time-consuming to implement and maintain. In this paper, we introduce an
approach to predict the optimal resource size of a serverless function using
monitoring data from a single resource size. As our approach does not require
dedicated performance tests, it enables cloud providers to implement resource
sizing on a platform level and automate the last resource management task
associated with serverless functions. We evaluate our approach on three
different serverless applications, where it selects the optimal memory size for
71.7% of the serverless functions and the second-best memory size for 22.3% of
the serverless functions, which results in an average speedup of 43.6% while
simultaneously decreasing average costs by 10.2%.
