  Serverless computing provides fine-grain resource sharing between Cloud
tenants through containers. Each function invocation (action) runs in an
individual container. When there is not an already started container for a user
function, a new container has to be created for it. However, the long cold
startup time of a container results in the long response latency of the action.
Our investigation shows that the containers for some user actions share most of
the software packages. If an action that requires a new container can
``borrow'' a similar warm container from other actions, the long cold startup
can be eliminated. Based on the above finding, we propose Pagurus, a runtime
container management system for eliminating the cold startup in serverless
computing. Pagurus is comprised of an inter-action container scheduler and an
intra-action container scheduler for each action. The inter-action container
scheduler schedules shared containers among actions. The intra-action container
scheduler deals with the management of the container lifecycle. Our
experimental results show that Pagurus effectively eliminates the
time-consuming container cold startup. An action may start to run in 10ms with
Pagurus, even if there is not warm container for it.
