64bit memory and VM question

Posted on 2010-09-14
Medium Priority
Last Modified: 2013-11-10

Our environment is ESX 3.5, Windows 2003 SP2 Enterprise servers guests.

We have an application running on a VM guest. It is a 32bit app, but we have assigned 4GB RAM just in case. We figure that if the RAM is not used, we are not actually losing anything, since we are not directly paying for its exclusive use like we would do with a physical box.

We're now in the midst of a refresh, and we're upgrading to Windows 2008 R2 servers which are all 64bit OS.

I'm trying to work out what amount of RAM to assign the guests that will host the application.

- Should we continue to assign 4GB

- Is there any benefit of assigning more than 4GB for a 32bit app (I read on EE that 32bit apps could only see 4GB virtual address space per process, but I guess there could be multiple processes)

- The third option I'm thinking is using Perfmon to baseline our existing servers and find an average of memory use over, say, 48 hours. Does anyone know what the best counter to use would be and is it simply a case of running Perfmon for 48 hours and using the average value for whatever counter? Question is, does 2008 handle memory in any differernt way than 2003 server?

Question by:chuckp2010
  • 2
  • 2
  • 2
  • +2
LVL 20

Accepted Solution

woolnoir earned 500 total points
ID: 33675459
If you are only running 1 of these apps in a VM then it would be wasted to assign more than 4GB to the VM, unless the app used somewhere close to the full allocation itself. Remember you need to give the OS memory, allocate some for caching (speeds up the system somewhat) and then the amount the app needs.

a 32 bit app is limited to a 4GB address space, but it may not use 4GB, if it doesn't continue assigning 4Gb to your VM's. If the app uses the full 4GB then assign something lke 6GB to a VM.
LVL 20

Expert Comment

ID: 33675483
and good counters to use are working set, and private bytes - over time.

Assisted Solution

by:Cesar Aracena
Cesar Aracena earned 500 total points
ID: 33677696
I have as a rule of thumb, to install a 64-bit OS only if I have over 3GB of RAM unless some program specifies a 64-bit OS as a requirement.

With that being said, if you are running 32-bit applications, 3 (or in your case 4) GB or RAM is more than enought. I wouldn't care too much about finding out how much memory my apps are actually using. If they are built for 32-bit they will never demoand a lot.
Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why


Assisted Solution

ssingla78 earned 500 total points
ID: 33680213
For 32 bit applications, 4 GB memory is more than sufficient as applicaions are not designed to make use of more than 4 GB memory.

Moreover when you are using Virtual environment such as Vmware, it has inbuilt ways such as Ballooning which helps VMs to have sufficient memory resources.

I suggest you stick to 4 GB per VM and enable DRS ( Dynamic Resource Scheduler) as well to manage resource allocation automatically. For desiging new infrastructure, you can use Vmware Capacity Planning rather thah setting perfmon which are very tedious. The other problem with these counters is that these get reset after any restart of VMs..so eventually makes difficult to capture and analyse data for large duration.

Hope it helps.

Author Comment

ID: 33748681
> For 32 bit applications, 4 GB memory is more than sufficient as applicaions are not designed to make use of more than 4 GB memory

Isn't it that each process can use only up to 4GB? Each app could technically have multiple processes and therefore need to use more than 4GB RAM?
LVL 72

Assisted Solution

Qlemo earned 500 total points
ID: 34075508
Since it is not said whether the VM guest is 32bit or 64bit, the previously made statements are not accurate.

32bit apps can use 2 GB only, because the other 2 GB virtual memory space are allocated to the OS. There are tweaks like AWE / PAE, or /3GB OS boot switch, which can change that on a 32bit (!) OS, but the application needs to be designed for using that additional memory.

32bit apps on 64bit OS are able to address 4 GB.

An application and a process is identical. The max. addressable memory limit applies to each process (and hence application). A process has several threads - but that is something completely different.

Author Comment

ID: 34106094
Hi Olemo

The VM guest is 64 bit....

> An application and a process is identical

An application can (and I thought they normally do) have more than one process though? And the 2 GB limit with 32 bit OS limit is per process isn't it?
LVL 72

Expert Comment

ID: 34106506
As I have stated already, an application does not consist of more than one process. The process concept of e.g. UNIX does not apply here, since you can't spawn a separate process from the main process by copying itself. If you see the same .exe running more than once, they are are all separate instances (= applications = processes = files). For communication between them they need to implement own inter-process communication methods.

I don't know why you think an application might consist of more than one process.

Featured Post

Simplify Active Directory Administration

Administration of Active Directory does not have to be hard.  Too often what should be a simple task is made more difficult than it needs to be.The solution?  Hyena from SystemTools Software.  With ease-of-use as well as powerful importing and bulk updating capabilities.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Or at least that’s the word according to a new blog from Tech Target on AWS’s new Managed Services (MS) offering. According to the blog, AWS is launching their AWS MS program to expedite the adoption of cloud by Fortune 1000 and Global 2000 companie…
Arrow Electronics was searching for a KVM  (Keyboard/Video/Mouse) switch that could display on one single monitor the current status of all units being tested on the rack.
This tutorial will give a short introduction and overview of Backup Exec 2012 and how to navigate and perform basic functions. Click on the Backup Exec button in the upper left corner. From here, are global settings for the application such as conne…
This tutorial will walk an individual through setting the global and backup job media overwrite and protection periods in Backup Exec 2012. Log onto the Backup Exec Central Administration Server. Examine the services. If all or most of them are stop…

607 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