vCenter Operations Manager – Identifying Idle/Unused VMs
Let’s face it, we’re all busy people. Last minute projects, drive-by requests, and “I need it yesterday” requests seem to be non-stop no matter where you work within IT. Although they are equally important, proactive maintenance and tasks are usually an afterthought to the daily grind…and things get overlooked. I try be as proactive as possible, knowing first-hand the benefits of staying on top of firmware upgrades, completing those lingering post-project tasks, and overall environmental cleanup.
It seems that now the virtual infrastructures have enabled faster provisioning, application owners are catching on to what seems to be a daily request for a new VM. The constant request for VMs, although almost effortless and painless with templates and automation, allows for oversight by the infrastructure team on what is being used and what’s not. Are those 5 VMs that app owner requested being used any longer? Were they requested for long term use or a quick and dirty, hour long test? Or did they simply forget they requested them? Regardless of the reason (and I’ve seen a lot of them) the VMs are now sitting idle, with no purpose in life and consuming resources that could be used elsewhere?
As stated above, we’re all busy and, in a perfect world, resources are being used as requested. In the real world, however, VMs are sitting there as deployed, utilizing CPU, reading and writing to memory, and chatting with services on the network such as domain controllers, anti-virus, and other agents. However, because you’re a fantastic admin, you’ve deployed vCenter Operations Manager and can easily identify and eliminate these Idle VMs from the infrastructure.
Luckily, vCOps includes a built-in report specifically for idle VMs, allowing you to create it on demand or schedule the report on a daily, weekly, or monthly basis. Finding and running the report is fairly simple. In the normal UI (<IP Address>/vcops-vsphere), click the Reports tab at the top and scroll down to the Idle Virtual Machines report. Run it, open it.
Once you view the report you’ll notice that it identifies Idle VMs with thresholds such as average CPU, disk, and network utilization. The usage for these individual resources must be below the threshold to be considered “idle”. By default, a VM is considered idle if all three of the following thresholds are met over the defined report period:
- Average CPU < 100 MHz
- Average Disk I/O < 20KBps
- Average Network I/O < 1KBps
The default values can be easily modified if they aren’t sufficient for your environment. To do this you’ll need to modify the policy that is applied to the group/resource that you are reporting on. To do this, click on the Configuration option at the top of the screen. By default, there is only one policy, named Default Policy, and includes the thresholds mentioned above for Idle VMs. Open the desired policy and find the option on the left named “Powered off and idle VMs”. Here you can modify the policy to the values you require.
Once you’ve modified the values as desired, run the report to see what VMs are Idle and wasting resources in your environment. Then, phone up the application owners, start interrogating them, teach them the importance of reducing resource waste, and remove VMs where possible 🙂 An example report is below.