Free virtual machine memory “rightsizing” report.
Rightsizing is an important operational process that affects virtual machine performance. VMware recommends that you identify and address under/oversized workloads within your environment.
The reason for this it to maximise your VM performance also promotes efficient usage of your underlying hardware.
When rightsizing a virtual machine there needs to be a formal process and not just a “rule-of-thumb” or “trial-and-error”
Recommended process to follow when rightsizing:
- Determine a time frame to analyse the VM
- Use recent data.
- Choose a time frame that captures peak usage.
- Factor in seasonality
- Find the peak value
- The best practice currently is to analyse the memory consumed by the VM.
- Comparing peak usage to allocation.
- Take the average percentage of the memory usage at peak vs. allocated.
- Forecasting usage changes and adding a buffer.
- Take into consideration that VM memory demands could increase based on current usage and forecasted usage.
- Review the memory trend based on historical data. Was there an increasing trend?
- Factor in buffer value.
- For the more critical applications that do have dynamic memory requirements adding an additional 25% buffer on the amount of memory allocated for the VM is recommended.
- Change sizing allocation and document the changes.
- You can use this as a reference point when applying rightsizing on the VM in the future, and is generally good practice.
Memory is generally the most constrained resource in a virtual environment. By following these recommendations we can use our resources more efficiently.
Rightsizing memory allocations make more memory available for other VMs, resulting in increased virtual server density.
Additionally, regular monitoring of memory usage enables Virtual administrators to proactively detect problem areas in virtual servers that are under‐provisioned to avoid performance issues
I created a tool that you can use to create a memory rightsizing reports using PowerCli. The reason behind this was that one of my employers did not have the budget to procure any tools to do this for me. This tools can also target an individual ESXi node’s virtual workloads.
You will require PowerCLi 5.x or later installed on the source machine you will be executing the script from. Note that the default port “443” was used to connect to vCenter/ESXi. If anyone needs the ability to specify a port, let me know and I will add that feature.
You are welcome to edit the script to meet your requirements.
Let me know if it works for you by leaving a comment.