Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win


How to tune Memory allocation in an existing VMWare ESXi 5.1 environment

Posted on 2013-10-22
Medium Priority
Last Modified: 2016-11-23
Firstly, everything is working pretty well.  I have 3 Dell R710 servers each with 128Gb of RAM.  All together, I have approximately 45 virtual machines.  Till now I've been pretty generous with the RAM allocations, but now were starting to hit the ceiling as far as RAM goes.

I'd like to analyze the actual needs of the virtual machines, and adjust RAM allocations accordingly.  I've read a bunch from VMWare, various blog posts, EE of course, and in the end I think I have a good approach, but I just want to vet it.

So I have IPMonitor setup to watch each of my VMs, it records the Physical Memory consumption every 5 minutes and I can create a report looking as far back as I want.

So for example if I have a Citrix Web Interface vm with 4Gb of RAM allocated, IP Monitor (And the OS) report over 80% free memory over the course of the previous month.  So it is only using 820Mb of RAM and I add the VMWare overhead which is reported at 46Mb, and add 30% for breathing room which comes to 1.1Gb of RAM, am I golden? (Based on some general recommendations that your 'average' memory consumption shouldn't exceed 70%)

Let me know if I'm going about this right.

Thanks a ton
Question by:ITDharam
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
  • 2
LVL 124

Accepted Solution

Andrew Hancock (VMware vExpert / EE MVE^2) earned 1000 total points
ID: 39591454
The VMware vSphere parameter to monitor is Active Memory in the VM. Also remember that the computer or server, does not know it's been virtualised, so memory monitoring in the VM OS, could be inaccurate!

So do these figures, match Active Memory?

see my EE Article

HOW TO:  Performance Monitor vSphere 4.x or 5.0

see also Duncan's excellent article here


Assisted Solution

dipopo earned 1000 total points
ID: 39591523
I would not take the metrics from within the VM as holistic. I would prefer to see what the "Active memory value is" and look at pegging "Memory reservation" to the Active memory value, in turn use these steps from VMware with regards to enhancing the performance.


Then you can go further by reducing the "Memory Allocation per VM"

Author Comment

ID: 39591581
So I don't have a way to capture 'Active Memory' usage over time within vSphere (They remove the 'Active' memory metric when you try and change the chart to anything other than real-time.  When set to 'Active' I can see that the average 'Active' metric is a whopping 60Mb with a max of 167Mb

Meanwhile I'll look at the articles provided
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.


Expert Comment

ID: 39591978
Try PowerCLI and the get-stat cmdlet, you will have to be creative I guess to get what you want.

Have a look at this, could be scheduled and you can collate figures over time.


Author Comment

ID: 39592191
Before I go down that route, is 'Active' really the attribute I want?  If it is report max <170Mb for a Windows web server, I'm guessing it isn't looking at the whole picture because I'm pretty sure that server wouldn't run if I allocated that little RAM to it.
LVL 124
ID: 39592308
depends what the server is actually doing, at startup Windows Test all Memory, and then drops off, to idle!

Author Comment

ID: 39592522
Let's take one of my Xenapp Application servers.  I've allocated 16Gb of RAM, at load there may be 40 active users, at this very moment there are 5 active users.  vSphere is reporting 655Mb of 'Active RAM', and it is showing 1.5Gb as the MAX.  Now, what are the chances that this Citrix server would run with 2Gb of RAM allocated?  I checked a Domino server with 20 active users, and it had a similar 1.5Gb MAX RAM usage.

So this has me pretty well confused, and I've read a lot of documentation on this.  I would think this would be fairly straight forward even with the vSphere overhead and sharing that are possible.  I'd also expect that watching a system that is already deployed would readily reveal whether RAM should be (de) allocated.

What am I missing here?
LVL 124
ID: 39593349
Active is a current figure, you would need to look at the averages and max and mins, to confirm real values. Not just at a point in time.

Do Memory Summary figures match your Memory figures in the OS, as a guide?

Author Comment

ID: 39597442
OK, I left the vSphere performance tab open on my Citrix app server and over 2 days it is now averaging 4Gb, and maxed at 7Gb which seems a lot more realistic.

Unfortunately I don't have IPMonitor setup to watch this particular VM.

Can you recommend a product that will monitor these metrics from vSphere over time and allow me to generate historical reports?  IPMonitor is really nice like that, but as far as I know it won't collect data on these vmware specific metrics.  I'll contact Solarwinds and verify.

Thanks for the help, this is becoming clearer.
LVL 124
ID: 39597457
All the information and performance is collected in the vCenter Server database.

If you want a different method of presenting this information

Veeam One

vCenter Operations Manager

Both are good applications which can report on performance and metrics, we prefer vCenter Operations Manager.

Author Comment

ID: 39597996
Great, thank you hancocka.

I just realized that while memory 'Active' isn't available in the basic performance charge when selecting a period of time, memory 'usage' is which is good enough for me.  Slightly unfortunate that memory 'usage' only reports as a percentage instead of a KB value, but this gives me something to work with.

Thank you for your assistance.
LVL 124
ID: 39598043
no problems.

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If we need to check who deleted a Virtual Machine from our vCenter. Looking this task in logs can be painful and spend lot of time, so the best way to check this is in the vCenter DB. Just connect to vCenter DB(default DB should be VCDB and using…
When rebooting a vCenters 6.0 and try to connect using vSphere Client we get this issue "Invalid URL: The hostname could not parsed." When we get this error we need to do some changes in the vCenter advanced settings to fix the issue.
Teach the user how to use create log bundles for vCenter Server or ESXi hosts Open vSphere Web Client: Generate vCenter Server and ESXi host log bundle:  Open vCenter Server Appliance Web Management interface and generate log bundle: Open vCenter Se…
Teach the user how to use vSphere Update Manager to update the VMware Tools and virtual machine hardware version Open vSphere Client: Review manual processes for updating VMware Tools and virtual hardware versions: Create a new baseline group in vSp…

610 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question