If you did not already know there is no boot.ini in Vista/LH. So how do you set usermode space to 3GBs?
If you recall on x86 platforms there is 4GBs of addressable VM space. So by default that is split up equally. 2GBs for kernel mode and 2GBs for use mode. Now this is usually fine, but if you have a server that could use more usermode space like domain controllers, SQL servers, exchange sevrers, etc. You could really use another GB for caching of the database in user mode. Or you could suck it up and by an x64 machine.
In 2k3 you would do this by using the /3GB switch in the boot.ini which would split the VM, giving 1GB to kernel and 3GBs to user. Allowing LSASS to cache more of the database on a domain controller for example.
So how do we do this in Vista and LH? It's actually pretty simple:
BCDEDIT /Set IncreaseUserVa 3072
You do not have to specify the boot selection GUID. If you do not specify, it will modify the current selection, which is what you want to do anyways.
I knew that there is no boot.ini file in Longhorn, however reading your blog raised a basic question..how about booting in DSRM and so? Above you explained that for booting in dsrm mode we can modify the boot.ini. How do we do that in Longhorn?
And ahh your blogs are damn useful..thanks.
Working in DCOPSESC-MS IT.
To boot into DSRM in Longhorn use MSCONFIG. It's under the safe boot options.
Thanks for this post! Can you recommend what configuraton I should use on a Vista laptop w/ 4GB of RAM running: Vista 32-bit, Office 2007, Virtual PC/Virtual Server, IE, etc...
My main concern is will system services have enough memory to run well (e.g., SuperFetch).
I'd say just stick with the default of 2GB for Usermode and 2GB for Kernel.
The only real reason to use 3GB is if you have an application that can take advantage of it, like a small SQL database or domain controller.
If you find that virtual server is consuming a lot of usermode space then you could increase the USerVA space as much as you need.
When I run BCDEDIT... I get the following error. The boot configuration data store could not be opened. Access is denied.
I figured out my problem. But how do I verify the switch has worked?
I imagine you were'nt running the bcdedit command via an elevated cmd prompt? :)
For verification just type BCDEDIT at the cmd prompt and you should see the increaseuserva value listed. If you want to know how to verify from the debugger than thats a differnet story.
Thanks Brad for your help! It's all working beautifully. Now, let's say I need to remove or reset the switch (ie. get rid of increaseuserva when I go to BCDEDIT). How would I do this? I have a machine that I tested this on but now I need to get it back to the state it was in before I started tinkering with it.
I have the following situation:
1. 4GB Asus P5W DH mother board.
2. AMI Bios recognizes the 4GB
3. WinXP recognizes the /3GB switch and ControlPanel=>System shows greater than 3GB
4. Installed Dual boot with Vista
5. Vista ControlPanel=>System shows 2 GB
5. Executed bcdedit /set IncreaseUserVa 3072 successfully
6. bcdedit now shows 3072 IncreaseUserVa
7. reboot and Vista ControlPanel=>System still shows 2 GB
8. MemWatch utility shows 2 GB as well.
9. Reboot shows XP now (without /3GB sw) at 2 GB.
10. Back to Vista=>bcdedit won't let me change the XP IncreaseUserVa.
Bottom line. 4GB installed and now neither XP or Vista recognizes greater than 2GB even though Bootstore says Vista IncreaseUserVa at 3072. Original XP used to recognize over 3GB,
What am I missing here?
How do I delete the IncreaseUserVa entry once set?
To delete the entry use the following.
bcdedit /deletevalue increaseuserva
Worked great. Thanks Irvin.
i dont understand
what is BCDEDIT
is it a program????
Hey Ofek, here is your answer:
And yes it is an exe:
I used bcdedit, checked through cmd and it's there; however, it does not show on task manager 4gb. I am using an Intel DQ965GF with latest bios updated.
could you help what I should be doing wrong?