VMware Cloud Community
dijn
Contributor
Contributor

Windows 2008 R Standby Memory

Hi there,

I have a question about running Windows 2008 R2 machines on vSphere.

In 2008 R2 there is such a thing as standby memory. I have a couple of 2008 R2 vm's running and they consume al lot of the hosts memory. When I look into the 2008 R2 resource monitor I see all of the 2008 R2 machines using a lot of standby memory. Is this standby memory consuming physical RAM from the ESX hosts and if so can I do something about it? Either on the ESX side ot on the 2008 side by disabling/twaeking standby memory?

Never had this issue before on 2003 vm's because they don't have the standby memory feature.

0 Kudos
13 Replies
geddam
Expert
Expert

There is nothing like Standby memory in Windows 2008.....There is a standby cache algorithm runs in Windows 2008 called (Standby Cache Reserve Bytes + Standby Cache Normal Priority Byte)...This is the one which handles your virtual paging. However coming to memory usage on Windows 2008 in VMware, yes it is true that, Windows 2008 behave different in Virtual environment as compared with Physical environment.

Ask yourself these questions...

1. Is your Windows 2008 is patched with appropriate bug patches for memory leak...?

2. Is your VM overcommitted...?

3. Is page file configured correctly?

4. Are they running on thin provisioned disks (they generally should not)?

5. What other apps running on these boxes, behave or respond well in terms in memory paging/leaking/active usage....?

6. Does they respond in same on all hosts in your environment?

Thanks,,

Ramesh. Geddam,

VCP 3&4, MCTS(Hyper-V), SNIA SCP.

Please award points, if helpful

Thanks,, Ramesh. Geddam,
0 Kudos
dijn
Contributor
Contributor

Thanks for the reply Geddam,

I will try to answer your questions and provide some screenshots. I als attached a screenshot of the Windows 2008 R2 resource monitor with a circle around the "Standby Memory" section. What you can see there that 2415 MB is taken as Standby. This memory is used on the ESX host right? As you can see in the screenshots that the memory used on the ESX host is 2515 MB but the vm only has 1078 MB in use (without Standby memory).

1. Is your Windows 2008 is patched with appropriate bug patches for memory leak...?

  • All of the vm's are up to date with the Windows Updates. Are there any other patches I should be aware of?

2. Is your VM overcommitted...?

  • Not exactly sure what you mean by this. Added two screenshots of the Summary tab to this reply (General,Resources)

3. Is page file configured correctly?

  • Set as "System Managed". Currently 3839 MB allocated

4. Are they running on thin provisioned disks (they generally should not)?

  • Disks are thick provisioned. See screenshot.

5. What other apps running on these boxes, behave or respond well in terms in memory paging/leaking/active usage....?

  • This are Symantec Endpoint Protection machines. The performance of the SEP environment seems good/normal.

6. Does they respond in same on all hosts in your environment?

  • Not exactly sure what you mean here. All of the 2008 machines respond good/normal.

0 Kudos
mlubinski
Expert
Expert

I have something similiar in my environment, and I can't get why this happens yet.

here is the link: high host mem usage

However, I am using mixed 2k8 and 2k8 r2, and on affected VM (on my screenshots) I see Standby memory 287MB, while host mem used is 3,2GB.

This VM isfully patched, ESX hosts are running newest patches, vCenter is U1, and before (when this VM was not migrated to new cluster) this VM was consuming average of 1GB of memory.

If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points

[I]If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points[/I]
0 Kudos
geddam
Expert
Expert

Addressing 2:

As per your screenshot, your overhead is 1.5GB of 4GB allocated, which is high. (For this, create a seperate resource pool in your cluster, set the CPU and memory shares to high, and move these 2008 VMs to this resource pool).

Addressing 3:

Your page file is not configured correctly, Page file should be 1.5 times of your allocated physical memory....(For this, set a custom value of 6144 for your page file). Set the visual affects mode to best performance mode.

Addressing 5:

On what criteria you came to a conclusion that SEP is behaving normally...(For this visti Symantec communities, and look for recent issues of Windows 2008 on virtual palatforms)

Addressing 6:

I mean, if you migrate this 2008 VM to another ESX server, do you see the same behaviour?..

Thanks,,

Ramesh. Geddam,

VCP 3&4, MCTS(Hyper-V), SNIA SCP.

Please award points, if helpful

Thanks,, Ramesh. Geddam,
0 Kudos
geddam
Expert
Expert

Forgot the mention,,, Standby mode is nothing but private working set in memory...

Refer http://msdn.microsoft.com/en-us/library/aa965225%28VS.85%29.aspx

Thanks,,

Ramesh. Geddam,

VCP 3&4, MCTS(Hyper-V), SNIA SCP.

Please award points, if helpful

Thanks,, Ramesh. Geddam,
0 Kudos
mlubinski
Expert
Expert

see my solution (for my problem), maybe will help also to you. Just go to my link (provided in my first answer)

If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points

[I]If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points[/I]
0 Kudos
ibrahim_somali
Contributor
Contributor

Hi everyone, I have same problem.

I realized that my windows 2008 R2 servers uses high memory. When I check my server from perfmon, nearly all of memory in standby memory and my ESX hosts show this server uses all own memory which I detemined for this server. My ESX host 4.0+U1 and applied all patch. Could you tell me how can I solve this issue. I read your advise which you explained http://communities.vmware.com/thread/259389?tstart=0 . May be it will usefull but How can I apply.

Regards

0 Kudos
mlubinski
Expert
Expert

What are your servers? Dell r610/r710? or anything with Nehalem Processors?






[I]If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points[/I]

[I]If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points[/I]
0 Kudos
ibrahim_somali
Contributor
Contributor

All of them IBM x3650 Quad Core CPU 48 GB RAM. My vm server is Windows 2008 R2 64 bit. I defined 4 GB ram for VM server. I realized that server is allocated roughly 3400 MB cached. I closed hibernation. The vm server uses for file server. But vm server allocated all memory which I defined from ESX . Commited memory just ~1 GB.

Regards

0 Kudos
mlubinski
Expert
Expert

On ESX host go to configuration->Software->Advanced Settings->Mem and change Mem.AllocGuestLargePages to 0. Then reboot ESX host






[I]If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points[/I]

[I]If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points[/I]
0 Kudos
ibrahim_somali
Contributor
Contributor

Thank you so much. I applied my test hosts. I still follow how will be effect my systems. Do you know are there any negative impact to systems which is applied this settings. And when I apply new patch or upgrade how can effect my systems.

Regards

0 Kudos
mlubinski
Expert
Expert

I was told by vmware that there are no negative effects of this setting

Sent from my iPhone

On Apr 1, 2010, at 9:13 AM, "ibrahim.somali" <communities-emailer@vmware.com

[I]If you found this or any other answer useful please consider the use of the Helpful or correct buttons to award points[/I]
0 Kudos
RParker
Immortal
Immortal

"On all versions of Windows prior to Windows Vista, when a physical page (typically 4kb in size) that was owned by a process was reclaimed by the system, the Memory Manager would place the page at the end of the Standby List. If the process wanted to access the page again, the Memory Manager would take the page from the Standby List and reassign it back to the process. If a process wanted access to a new page of physical memory, then the Memory Manager would assign it the page that was at the front of the Standby List. Thus all pages on the Standby List were treated as equals using only the order in which they were placed on the list to sort them. Beginning with Windows Vista, each memory page has a priority ranging from 0 to 7. The Standby List is divided into eight lists that each handle pages of a different priority. When the Memory Manager wants to take a page from the Standby List, it takes pages from the low-priority lists first. A page's priority is usually a reflection of the thread to which it was first allocated. If the page is shared, then it reflects the highest of the memory priorities of the sharing threads. Threads inherit their page-priority value from the process to which they belong. By default, processes have a page-priority value of 5, however there are functions that allow applications and the system to change the process and thread page-priority values. The real benefit to memory priorities comes into play when applications can take aware of the relative priorities of pages. An example of this would be the SuperFetch feature in Windows Vista."

0 Kudos