Solved

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

Posted on 2013-10-22
12
842 Views
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
0
Comment
Question by:ITDharam
  • 5
  • 5
  • 2
12 Comments
 
LVL 119

Accepted Solution

by:
Andrew Hancock (VMware vExpert / EE MVE^2) earned 250 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

http://www.yellow-bricks.com/2010/12/20/vcenter-and-memory-metrics/
0
 
LVL 9

Assisted Solution

by:dipopo
dipopo earned 250 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.

http://pubs.vmware.com/vsphere-55/index.jsp#com.vmware.vsphere.monitoring.doc/GUID-C442423F-18CD-4F01-914E-286ED6C72BC6.html

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

Author Comment

by:ITDharam
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
0
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
LVL 9

Expert Comment

by:dipopo
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.

http://www.virtu-al.net/2009/07/01/powercli-stats-one-liner/
0
 
LVL 8

Author Comment

by:ITDharam
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.
0
 
LVL 119
ID: 39592308
depends what the server is actually doing, at startup Windows Test all Memory, and then drops off, to idle!
0
 
LVL 8

Author Comment

by:ITDharam
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?
0
 
LVL 119
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?
0
 
LVL 8

Author Comment

by:ITDharam
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.
0
 
LVL 119
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
http://www.veeam.com/virtualization-management-one-solution.html

vCenter Operations Manager
http://www.vmware.com/products/vcenter-operations-management/

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

Author Comment

by:ITDharam
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.
0
 
LVL 119
ID: 39598043
no problems.
0

Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

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

Suggested Solutions

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…
In this step by step tutorial with screenshots, we will show you HOW TO: Enable SSH Remote Access on a VMware vSphere Hypervisor 6.5 (ESXi 6.5). This is important if you need to enable SSH remote access for additional troubleshooting of the ESXi hos…
Teach the user how to install log collectors and how to configure ESXi 5.5 for remote logging Open console session and mount vCenter Server installer: Install vSphere Core Dump Collector: Install vSphere Syslog Collector: Open vSphere Client: Config…
Teach the user how to join ESXi hosts to Active Directory domains Open vSphere Client: Join ESXi host to AD domain: Verify ESXi computer account in AD: Configure permissions for domain user in ESXi: Test domain user login to ESXi host:

773 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