0

There are a few questions that mention something about warm up, such as:

What is this warm up thing? Is it something similar to "being ready when some request comes in (e.g. to preload things in memory, to prevent some sort of I/O operations)"? If not what could be a good comparison to explain it to a novice?

1
  • Don't think they put it into a toaster.. Scnr.. But seriously, containers etc indeed need some time to launch.. And warm up shared infrastructure in return.
    – Ta Mu
    Oct 12, 2018 at 19:24

2 Answers 2

2

All container services and Function-As-a-Service services of the big cloud providers, such as Amazon ECS, Lambda and Azure cloud functions run on actual virtual machines of these providers. Normally they only take a small number of milliseconds to start up, but when your container or function has not run for a certain amount of time, they will take a couple of seconds to actually start up the virtualization environment for your container or function. These startup times improve all the time, but you still get better startup time results by calling your functions or a request in your container in regular intervals.

A typical interval could be every minute, so that you can be sure that the virtual environment the container or function runs on has likely not been shut down, as it just was in use in the past 60 seconds.

In relation to an auto scaling group, I would say that "warm up" is a bit of a mis-nomer. Either there are enough instances provisioned to handle the traffic you expect, or you may need to make a 'scheduled change' to the number of instances, but there is actually nothing to warm the instances up.

One edge-case would be if instances have disk contents restored from backup. On AWS, there is some delay in getting the contents on these disk from snapshot and the disk can be warmed up by reading all blocks on it

1
  • interesting, merci!
    – Pierre.Vriens
    Oct 13, 2018 at 6:13
2

In the Google App Engine PaaS context, standard environment apps using automatic scaling can use warmup requests to keep request latency/response time down even during traffic peaks requiring new instances to be started. From Warmup requests:

Warmup requests are a specific type of loading request that load application code into an instance ahead of time, before any live requests are made. Manual or basic scaling instances do not receive an /_ah/warmup request.

To learn more about how to use warmup requests, see Configuring warmup requests.

Without warmup requests configured instances would be started only in response to actual/live requests which are already routed to the new instance (which isn't yet ready). Meaning that the response time for those requests would be increased with the actual instance startup time.

With warmup requests configured the live requests keep being handled by instances already running while the new instances are being started (by the warmup requests). Only after the new instance is up and running (indicated by successful handling the warmup request) the scheduler will start routing live requests to it.

1
  • So funny ... yet another concept which seems to be derived from good old big iron, aka mainframe ... merci! Maybe I should start a series of (self answered) questions like "What's the mainframe equivalent of DevOps concept XYZ?" ... possibly here
    – Pierre.Vriens
    Oct 13, 2018 at 6:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.