SQL Server Performance Forum – Threads Archive
W2k3 and MemoryIve read the posts on this forum and i have a few questions about the memory usage of Win2k3 Ent server in combination with large memory like more than 2G. We have a Terminal Server with 6Gb of RAM. It uses 32bit Win2k3 Enterprise with the /PAE switch enabled. It has lots of users and the server has according to the counters lots of bottlenecks on CPU, disk and memory. But the counters show 4G of physical memory free. So why doesnt it use the mem available?
So far, ive read thru different techdocs and made some conclusions. Please feel free to shoot at my conclusions as i dont know if they are right.. Ive read that theres a true PAE and a x86 PAE. True is 64bits procs with 64bits windows, x86 PAE is an extension for 32bits procs and 32bits windows. All i’ve read is that x86 PAE lets u use more than 2Gb of ram. If i understand it correctly its possible to give apps more adresspace memory. Thats with the /PAE to use memory above 2G and /3GB to give processes (like SQLServer) 3Gb adresspace and the kernel 1GB. So why cant i use my extra 4G of memory? The server says it has 6Gb of ram, but doesnt use it, coz theres 4Gb available while the server is swapping and very very busy. Is this because the virtual memory appointed to a app is 4Gb on a 32bits Windows server system? And this is devided in 2G for the kernel and 2G for the app-pool? If so, is this why my TS almost doesnt access the 4Gb? Coz the apps wont ever have use for more than 2G mem? I cant find answers in MS support, technet, msdn and 3rd party sites. Can anyone tell me if i understand it correctly? Use the dark side of Technology..
If you haven’t done so already, read:http://www.sql-server-performance.com/awe_memory.asp Aer you running SQL Server on this Terminal Server, or is this only a Terminal Server box? If it is only Terminal Server, I don’t the answer. But if you are running SQL Server, then you must follow the instructions very carefully in the above URL in order to get everything to work together correctly. —————————–
Brad M. McGehee, MVP
Hi ya, One thing with PAE is that it does require the application to use AWE, I’m not sure off hand if TS supports this… will just check right now Cheers
I got the following Reply after mailing Brain Madden; -Why cant i use memory for my TS above 2Gb with the PAE switch enabled?
The PAE switch does not give more memory to the kernel. It only gives more to the user-mode application processes. All PAE does is â€œtrickâ€ the application into thinking it has more space by creating multiple page tables for each application. In fact, using the PAE switch is bad in Terminal Server environments because each application will require 4 times as many page tables, which comes out of the limited 2GB space. If I were you, I would remove 2GB of memory so that you have only 4 total, and stop using the PAE switch. -is /PAE for the OS so that applications can use AWE to adress it?
-Do i have to do a reinstallation of Win2k3 ent to support the memory above 2Gb? or is adding the /PAE switch enough?
You do not have to reinstall, just add the switch -How does Terminal Services uses memory? Why is it bound to the kernelmemory of 2Gb?
In 32-bit Windows systems, the kernel can never ever use more than 2GB of memory. Period. Even with the x86 PAE, the kernel still is limited to 2GB. That#%92s just the way it is, and there#%92s no way around it. The kernel is bound to 2GB because the memory manager can never address more than 4GB. Why? Because the memory manager uses 32-bit addresses for memory, and 2^32 = 4GB. This will probably never change, since 64-bit OSes are around the corner, and this 2GB kernel limit is only hit in Terminal Server environments. (usually) If you haven#%92t done so yet, download my Terminal Server Performance Tuning white paper (www.brianmadden.com/papers) It covers all this stuff in detail.
Brian Use the dark side of Technology..
btw, Thank you guys for thinking with me. And no, i dont use SQL Server on the Terminal server. Use the dark side of Technology..