Optimal RAM Allocation

harryc

Member
I am running a 2Ghz MacBook Pro with 2GB RAM. I am wondering what others with a similar configuration have configured for maximum RAM allocated to an XP guest? I have 900MB max. set currently. In Activity Monitor in OSX I see;

Memory
Wired = 1.05 GB
Active = 251.59 MB
Inactive = 653.97 MB
Used = 1.97 GB
Free = 32.63 MB
VM Size = 11.44 GB

How am I doing?
 
I'd also like to know - why does the VM say that 604MB is the max it recommends for XP? With 2GB, I'd like to give it 768MB or 900MB, but I want the fastest development experience possible within the VM.
 
I'd like to know this too.

With 1GB, I'm seeing quite a bit of pausing and otherwise disk thrashing that makes me curious why everyone else seems to be having near-native performance :)

I can think of these possible scenarios:

1) I need more RAM. My figures look somewhat like what harryc posted, with only "20-something"MB free. It makes me wonder how much the extra RAM helps or if it just gets chewed up somewhere else.... I have to believe though that some of the disk thrashing is vmem swapping.
2) It's due to me using an "expanding" hard drive. I know with VMWARE this causes a performance hit, so I'm not sure why i set it this way with Parallels. I'd be curious to know, though, how much of a hit people in this situation are anecdotally seeing.
3) People get overexcited and say it's faster than it really is :)


Thoughts?
 
I have 2GM on my MacBook and have 932 allocated to the VM & 832 to Windows and that works pretty good. If I go too much higher, the free memory in the Activity monitor gets too low.
 
When my MBP had 1GB of RAM, running Parallels made my system run so slowly it was almost unusable. OS X was just paging everything. With 2GB its now running very nicely.

I'm looking forward to running 4GB of RAM on my MBP when I can.
 
For running a bit smoother under 1GB system memory, I've allocated 384MB for the PDM overall, with 256MB towards the VM itself. Win2k seems to be happy with 256MB, more or less.
 
Just one quick note.

Remember that the real used memory in a UNIX System like Mac OSX is NOT Wired+Active+Inactive.

Inactive memory is just FREE memory which hasn't been reclaimed yet, in the case the program come back to life, to avoid reswapping data to memory again.

It's pretty normal to have LOW "Free" Memory, but to check if you need more memory you should check out Free+Inactive. That is the real 'free' memory (in the windows sense).

So harryc, you had over 600 MB free, so it's not a memory issue: you are more than fine with 2GB. Try to give more to the VM, like ppl here suggested.
 
Having 1/2 your physical RAM wired is not a good thing. That means that 1/2 your RAM is not able to be used for paging your apps in and out. I'm not sure what Parallels is doing wiring down so much RAM, but there is at least one bug here: quitting Parallels does not seem to free up that wired RAM. This makes me think that there is a leak in one of their kernel drivers. The only way I have found to get back that wired space is to reboot. Running OS/X and _not_ using Parallels never sucks up that much wired space.
 
Interestingly, my 2GB MBP has the same "wired" memory characteristics as the original poster. I first assumed after doing some reading that this was OS X (although it's hard to believe any sane OS would wire half the physical RAM). You're implying that Parallels is eating it and not releasing it even when you quit Parallels (I'm on build 1970). I suppose a reboot and running a while w/o starting up Parallels would prove/disprove this. Anyone else in the forums with similar memory stats w/o running Parallels, or are there any known memory leaks?
 
I have found, per Parallels recommendation, that less = better performance. I only allocate 920K to Parallels. When I increased this Vista ran slower.
 
I agree... Less seems to be more.... Very odd. I too cannot wait to try running 4GB on my MBP. Soon as I can afford the $595 each chips.... Which may be a while...
 
I've got 1G in my MBP, got Parallels Preferences Memory setting set 372 MB, then I've got my Windows XP VM set to 256 MB. Everything runs fine and fast. No problems whatsoever.

Presonally, I prefer to keep my Mac optimized, so I've set the VM to favor the Mac virtual memory.

Like I said, everything works great. :)
 
Windows Page File.

Another important issue for Windows performance is the Windows page file. Ideally you should allocate enough memory so that Windows isn't paging excessively :)

Another good suggestion is to set the Windows page file to have the same high and low end for paging. I.E. 1.5 times memory. This will keep the page file the same size so it's not always expanding as you use Windows.

If you have 1GB of RAM allocated to your XP your page file should be 1.5GB.
If you have 512MB of RAM allocated to your XP your page file should be set to 786MB.

If you stick to this simple rule you should see performance increase.
 
Rachel Faith said:
I agree... Less seems to be more.... Very odd. I too cannot wait to try running 4GB on my MBP. Soon as I can afford the $595 each chips.... Which may be a while...
Which MBP do you have? If it's a Core Duo model, it only supports 2GB max.

If it's a Core 2 Duo model, you can install 4GB in it. But, due to a limitation of the Intel chipset, only slightly more than 3GB will be available. In other words, it doesn't make economic sense to put 4GB into the machine. Just install 3GB instead.
 
PTWithy said:
Having 1/2 your physical RAM wired is not a good thing. That means that 1/2 your RAM is not able to be used for paging your apps in and out. I'm not sure what Parallels is doing wiring down so much RAM,
Since this thread has been revived...

I suspect Parallels pins down the entire RAM space of a running VM. If they didn't it would be eligible to be paged out to disk. The guest OS would have no knowledge of this: it would appear as though some areas of "physical" RAM were sometimes magically slow by many orders of magnitude.

When Intel launched HyperThreading Microsoft was forced to admit that Windows had many software timing loops so sensitive they would break under HyperThreading and that was minor compared to this!

It's possible that Microsoft only did enough of a bandaid to survive HyperThreading and that software timing loops that persist to this day would break using non-wired memory. And, some people will want to run older versions of Windows (perhaps old systems whose hardware has been physically retired but which may still need to be accessed from time to time and have been migrated to a VM). And there may be other operating systems with timing loops they'd like to support.

I do see an apparent leak bug in 3170 but in active not wired memory. Post on that coming shortly...
 
Last edited:
Back
Top