Auto-off: The Smartest way to Shutdown Your VM

Your personal laptop powers down after not being used for a while. Why can't you configure cloud VMs to do the same?

That was the thought when VMPower Auto-off was created. Everyone's IaaS usage is different. Thats why Auto-off was designed to:

  • Allow for highly configurable settings to define what it means for a VM to be 'idle'.
  • Make the shutdown behavior as configurable as possible.

Define What is Idle

VMPower provides some defaults for thresholds that indicate a VM is idle. For example, internally within the VMPower service a Kibana machine is used to visually inspect VM activity. When this machine is used, it is connected to via VNC, which is similar to RDP if you're coming from the Windows world.

This type of connection necessitates a large amount of network traffic since actual images of the desktop are sent over the network. And so it is quite easy to see when someone is connected to this machine. Below is an actual snapshot of the machines network activity when someone is connected via VNC (09:36AM - 9:56AM):

VMPower CI Machine Network Graphs

We can configure VMPower to detect this VM as idle only if the network in (B/s) or network out (B/s) exceeds a threshold using the Auto-off Idle Settings:

Idle Settings Dialog

For our VM use case, this is all we need to consider. Now every time someone connects to the VM, VMPower will untag the VM as idle. Once that person stops using the VM, VMPower will automatically shut it off.

Combining VMPower Auto-off with VM Schedules

Time-based VM Schedules can now be combined with Auto-off to provide automated VM allocations and Auto-off behavior during off-hours that you define.

Say that you know for sure that a VM will always need to be on at certain times of the week, you can schedule the times your VM Group should certainly be on. Outside of those times, VMPower will deallocate machines based on your Auto-off configuration.

A combination of VMPower Schedules & Auto-off provides the smartest way to do automated VM allocations and deallocations by combining time, and VM usage.