Windows Vista Forums
Vista Forums Home Join Vista Forums Windows 7 Forum Vista Tutorials Tags
Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks.

Go Back   Vista Forums > Misc Newsgroups > Virtual PC

Vista - Virtual PC - RAM

Reply
 
Old 05-21-2009   #1 (permalink)
kellyapproved


 
 

Virtual PC - RAM

When you setup a guest OS, you need to allocate RAM to it.

Let's say you have a host with 3 GB of RAM with two guests, each of
which you allocate 1 GB of RAM.

If both guests are in use, the host and two guests will get 1 GB of
RAM each.

Is there a way to set it so that if only 1 guest is in use, it can
draw on the spare RAM that is allocated to the other guest that is not
used.

My System SpecsSystem Spec
Old 05-21-2009   #2 (permalink)
Steve Jain [MVP]


 
 

Re: Virtual PC - RAM

On Thu, 21 May 2009 19:34:16 -0700 (PDT), kellyapproved@xxxxxx
wrote:
Quote:

>When you setup a guest OS, you need to allocate RAM to it.
>
>Let's say you have a host with 3 GB of RAM with two guests, each of
>which you allocate 1 GB of RAM.
>
>If both guests are in use, the host and two guests will get 1 GB of
>RAM each.
>
>Is there a way to set it so that if only 1 guest is in use, it can
>draw on the spare RAM that is allocated to the other guest that is not
>used.
RAM is assigned statically. If you give your VM 1GB that is what it
will get, no more, no less. If there is not enough available, the VM
won't start.

--
Cheers,
Steve Jain, Virtual Machine MVP
http://vpc.essjae.com/
My System SpecsSystem Spec
Old 05-21-2009   #3 (permalink)
VanguardLH


 
 

Re: Virtual PC - RAM

kellyapproved@xxxxxx wrote:
Quote:

> When you setup a guest OS, you need to allocate RAM to it.
>
> Let's say you have a host with 3 GB of RAM with two guests, each of
> which you allocate 1 GB of RAM.
>
> If both guests are in use, the host and two guests will get 1 GB of
> RAM each.
>
> Is there a way to set it so that if only 1 guest is in use, it can
> draw on the spare RAM that is allocated to the other guest that is not
> used.
If one VM could monitor the memory usage of another VM to see what
blocks were unallocated, you just threw out the isolation that
virtualization is supposed to afford for security.
My System SpecsSystem Spec
Old 05-22-2009   #4 (permalink)
Mark Rae [MVP]


 
 

Re: Virtual PC - RAM

<kellyapproved@xxxxxx> wrote in message
news:254ab120-ea96-4a9c-87f4-e8456db46402@xxxxxx
Quote:

> Is there a way to set it so that if only 1 guest is in use, it can
> draw on the spare RAM that is allocated to the other guest that is not
> used.
No.


--
Mark Rae
ASP.NET MVP
http://www.markrae.net

My System SpecsSystem Spec
Old 05-22-2009   #5 (permalink)
Jakob Bohm


 
 

Re: Virtual PC - RAM

kellyapproved@xxxxxx wrote:
Quote:

> When you setup a guest OS, you need to allocate RAM to it.
>
> Let's say you have a host with 3 GB of RAM with two guests, each of
> which you allocate 1 GB of RAM.
>
> If both guests are in use, the host and two guests will get 1 GB of
> RAM each.
>
> Is there a way to set it so that if only 1 guest is in use, it can
> draw on the spare RAM that is allocated to the other guest that is not
> used.
Unfortunately not. Remember that to the operating system inside the
Guest PC, the virtual PC is a real PC and the amount of memory in a real
PC typically cannot change without a reboot.

Currently I don't think the following facilities exist in MS VPC, but
they would be nice to have for your (common) problem:

1. Allow the virtual RAM given to a virtual PC to come from the Host PCs
virtual memory, not physical memory (in other words allow it to be
swapped out to the regular pagefile.sys of the host OS, just like
ordinary application memory consumption). This would allow running more
and larger virtual PCs on the same hardware, at the cost of some of
those virtual PCs running slower.

2. Adapt the amount of virtual RAM given to a virtual PC at virtual PC
reboot to depend on available real RAM at that time.

3. In the Virtual PC extensions for various operating systems, include
code that releases unused RAM pages back to the Host PC, thus making the
memory requirement smaller when the Guest OS is idle.

4. Emulate the advanced support for physically adding and removing
hardware memory without a reboot as found in expensive high end servers.
Many recent operating systems such as Server 2008 (and thus in
principle Vista too) contain support for handling hot memory
plugging/unplugging and could thus be made to cooperate with a variable
RAM size Virtual PC.
For Microsoft's own operating systems they could make a license
exception allowing the hot plug support to be used in Virtual PC (or
equivalent) Guest environments, even in SKUs that are not otherwise
licensed to include support for such high end servers.


--
Jakob Bøhm, M.Sc.Eng. * jb@xxxxxx * direct tel:+45-45-90-25-33
Netop Solutions A/S * Bregnerodvej 127 * DK-3460 Birkerod * DENMARK
http://www.netop.com * tel:+45-45-90-25-25 * fax:+45-45-90-25-26
Information in this mail is hasty, not binding and may not be right.
Information in this posting may not be the official position of Netop
Solutions A/S, only the personal opinions of the author.

My System SpecsSystem Spec
Old 05-22-2009   #6 (permalink)
Dave Warren


 
 

Re: Virtual PC - RAM

In message <gv5748$usq$1@xxxxxx-september.org> VanguardLH
<V@xxxxxx> was claimed to have wrote:
Quote:

>kellyapproved@xxxxxx wrote:
>
Quote:

>> When you setup a guest OS, you need to allocate RAM to it.
>>
>> Let's say you have a host with 3 GB of RAM with two guests, each of
>> which you allocate 1 GB of RAM.
>>
>> If both guests are in use, the host and two guests will get 1 GB of
>> RAM each.
>>
>> Is there a way to set it so that if only 1 guest is in use, it can
>> draw on the spare RAM that is allocated to the other guest that is not
>> used.
>
>If one VM could monitor the memory usage of another VM to see what
>blocks were unallocated, you just threw out the isolation that
>virtualization is supposed to afford for security.
With all due respect, that isn't true at all. VMWare allows RAM to be
over-allocated, which would be the first step to implementing this
request.

To avoid the performance implications of over-utilizing RAM, a second
step would be to have the integration components/additions/tools report
back the amount of available RAM within each VM to the host, and the
host would reply back telling the additions to allocate or release RAM
within each guest, tricking the guest into not using certain amounts of
RAM to make that RAM available to the host (and therefore, for
allocation to other VMs)

Guests already communicate with hosts in a number of ways, adding a
counters for available RAM, available clean pages, cache sizes and an
API to the guest components wouldn't cause any sort of security issue if
implemented properly.
My System SpecsSystem Spec
Old 05-23-2009   #7 (permalink)
VanguardLH


 
 

Re: Virtual PC - RAM

Dave Warren wrote:
Quote:

> In message <gv5748$usq$1@xxxxxx-september.org> VanguardLH
> <V@xxxxxx> was claimed to have wrote:
>
Quote:

>>kellyapproved@xxxxxx wrote:
>>
Quote:

>>> When you setup a guest OS, you need to allocate RAM to it.
>>>
>>> Let's say you have a host with 3 GB of RAM with two guests, each of
>>> which you allocate 1 GB of RAM.
>>>
>>> If both guests are in use, the host and two guests will get 1 GB of
>>> RAM each.
>>>
>>> Is there a way to set it so that if only 1 guest is in use, it can
>>> draw on the spare RAM that is allocated to the other guest that is not
>>> used.
>>
>>If one VM could monitor the memory usage of another VM to see what
>>blocks were unallocated, you just threw out the isolation that
>>virtualization is supposed to afford for security.
>
> With all due respect, that isn't true at all. VMWare allows RAM to be
> over-allocated, which would be the first step to implementing this
> request.
>
> To avoid the performance implications of over-utilizing RAM, a second
> step would be to have the integration components/additions/tools report
> back the amount of available RAM within each VM to the host, and the
> host would reply back telling the additions to allocate or release RAM
> within each guest, tricking the guest into not using certain amounts of
> RAM to make that RAM available to the host (and therefore, for
> allocation to other VMs)
>
> Guests already communicate with hosts in a number of ways, adding a
> counters for available RAM, available clean pages, cache sizes and an
> API to the guest components wouldn't cause any sort of security issue if
> implemented properly.
http://www.vmware.com/pdf/esx3_memory.pdf

It does talk about overcommitting the memory (i.e., having multiple
guests with a reserve specified for each whose total exceeds the real
memory for the host). It also mentions reallocation -- and that's where
they also mention clearing the reallocated memory to provide the
security of which I mention between those guests.

Allocating memory doesn't wipe it. Deallocating memory doesn't wipe it.
Whose going to do the wiping? In this case, the VMM has to do the
wiping and that means overhead. Their ESX product does that. Does
their free VMWare Server? I didn't see mention in VMWare Server's
manual that its VMM will reallocate and wipe memory between guests
(http://www.vmware.com/pdf/vmserver2.pdf). I'm still reading but
reserve, overcommittment, and swapping are not reallocating wiped memory
from a pool to share amongst guests. Technologies employed in a
rebranded Connectrix variant that targets consumer-grade platforms
hardly equates with VMware's enterprise solutions for server-quality
hosts.

If anything like VMware's ESX memory sharing shows up in a Microsoft
product, I'd expect it to show up in their Hyper-V product, not in
something like VirtualPC. That's not to say Hyper-V has wiped memory
reallocation for sharing a memory pool across guests. I'm saying it's
no big surprise that VPC doesn't have it. Can reallocation between
guests be done? Yes. WILL it be done in VirtualPC? No, not without
such a massive overhaul that it isn't VirtualPC anymore, becomes an
enterprise-level product, and probably won't be free so we wouldn't be
discussing it here.
My System SpecsSystem Spec
Old 05-25-2009   #8 (permalink)
Jakob Bohm


 
 

Re: Virtual PC - RAM

VanguardLH wrote:
Quote:

> Dave Warren wrote:
>
Quote:

>> In message <gv5748$usq$1@xxxxxx-september.org> VanguardLH
>> <V@xxxxxx> was claimed to have wrote:
>>
Quote:

>>> kellyapproved@xxxxxx wrote:
>>>
>>>> When you setup a guest OS, you need to allocate RAM to it.
>>>>
>>>> Let's say you have a host with 3 GB of RAM with two guests, each of
>>>> which you allocate 1 GB of RAM.
>>>>
>>>> If both guests are in use, the host and two guests will get 1 GB of
>>>> RAM each.
>>>>
>>>> Is there a way to set it so that if only 1 guest is in use, it can
>>>> draw on the spare RAM that is allocated to the other guest that is not
>>>> used.
>>> If one VM could monitor the memory usage of another VM to see what
>>> blocks were unallocated, you just threw out the isolation that
>>> virtualization is supposed to afford for security.
>> With all due respect, that isn't true at all. VMWare allows RAM to be
>> over-allocated, which would be the first step to implementing this
>> request.
>>
>> To avoid the performance implications of over-utilizing RAM, a second
>> step would be to have the integration components/additions/tools report
>> back the amount of available RAM within each VM to the host, and the
>> host would reply back telling the additions to allocate or release RAM
>> within each guest, tricking the guest into not using certain amounts of
>> RAM to make that RAM available to the host (and therefore, for
>> allocation to other VMs)
>>
>> Guests already communicate with hosts in a number of ways, adding a
>> counters for available RAM, available clean pages, cache sizes and an
>> API to the guest components wouldn't cause any sort of security issue if
>> implemented properly.
>
> http://www.vmware.com/pdf/esx3_memory.pdf
>
> It does talk about overcommitting the memory (i.e., having multiple
> guests with a reserve specified for each whose total exceeds the real
> memory for the host). It also mentions reallocation -- and that's where
> they also mention clearing the reallocated memory to provide the
> security of which I mention between those guests.
>
> Allocating memory doesn't wipe it. Deallocating memory doesn't wipe it.
> Whose going to do the wiping? In this case, the VMM has to do the
> wiping and that means overhead. Their ESX product does that. Does
> their free VMWare Server? I didn't see mention in VMWare Server's
> manual that its VMM will reallocate and wipe memory between guests
> (http://www.vmware.com/pdf/vmserver2.pdf). I'm still reading but
> reserve, overcommittment, and swapping are not reallocating wiped memory
> from a pool to share amongst guests. Technologies employed in a
> rebranded Connectrix variant that targets consumer-grade platforms
> hardly equates with VMware's enterprise solutions for server-quality
> hosts.
Wiping memory before allocating it to another process (in a single OS)
or another virtual machine (in a VMM) is a standard and trivial security
requirement for physical memory management code. All the NT-derived
Windows versions (including consumer-grade XP Home) do it for processes.
There is also a really good chance that at least the Microsoft "cleaned
up" versions of the old Connectix VPC co debase do it already for the
initial RAM allocation made for a newly started VPC.
Quote:

>
> If anything like VMware's ESX memory sharing shows up in a Microsoft
> product, I'd expect it to show up in their Hyper-V product, not in
> something like VirtualPC. That's not to say Hyper-V has wiped memory
> reallocation for sharing a memory pool across guests. I'm saying it's
> no big surprise that VPC doesn't have it. Can reallocation between
> guests be done? Yes. WILL it be done in VirtualPC? No, not without
> such a massive overhaul that it isn't VirtualPC anymore, becomes an
> enterprise-level product, and probably won't be free so we wouldn't be
> discussing it here.
I think you are greatly confused here. Just because VMware Inc may be
offering this feature in their enterprise product does not make it an
enterprise feature. On the contrary, the ability to run virtual
machines whose total virtual RAM exceed you physical RAM is very much a
desktop feature too. A really common case would be running a virtual
Vista and a virtual XP on a Win7 laptop whose physical RAM size is just
big enough to run one of the 3, and cannot be easily/cheaply upgraded.

While the VMware ESX micro operating system (it runs on the bare metal
with no normal Host OS) may use impressive names such as
"overcommitting" memory; But when running on top of a full featured
Windows OS, this all translates into simply allowing the virtual RAM to
be allocated from virtual memory rather than physical memory, and then
*optionally* adding some extra code to reduce the amount of swapping by
forcing the Guest OS-es to leave spare memory unused rather than using
it to "cache" disk I/O.


--
Jakob Bøhm, M.Sc.Eng. * jb@xxxxxx * direct tel:+45-45-90-25-33
Netop Solutions A/S * Bregnerodvej 127 * DK-3460 Birkerod * DENMARK
http://www.netop.com * tel:+45-45-90-25-25 * fax:+45-45-90-25-26
Information in this mail is hasty, not binding and may not be right.
Information in this posting may not be the official position of Netop
Solutions A/S, only the personal opinions of the author.

My System SpecsSystem Spec
Old 05-26-2009   #9 (permalink)
Dave Warren


 
 

Re: Virtual PC - RAM

In message <ev5QfGS3JHA.4880@xxxxxx> Jakob Bohm
<jb@xxxxxx> was claimed to have wrote:
Quote:

>I think you are greatly confused here. Just because VMware Inc may be
>offering this feature in their enterprise product does not make it an
>enterprise feature. On the contrary, the ability to run virtual
>machines whose total virtual RAM exceed you physical RAM is very much a
>desktop feature too. A really common case would be running a virtual
>Vista and a virtual XP on a Win7 laptop whose physical RAM size is just
>big enough to run one of the 3, and cannot be easily/cheaply upgraded.
>
>While the VMware ESX micro operating system (it runs on the bare metal
>with no normal Host OS) may use impressive names such as
>"overcommitting" memory; But when running on top of a full featured
>Windows OS, this all translates into simply allowing the virtual RAM to
>be allocated from virtual memory rather than physical memory, and then
>*optionally* adding some extra code to reduce the amount of swapping by
>forcing the Guest OS-es to leave spare memory unused rather than using
>it to "cache" disk I/O.
VMWare Workstation also allows overcommiting of memory, so this isn't an
enterprise-only feature.
My System SpecsSystem Spec
Reply

Thread Tools


Similar Threads
Thread Forum
error: Virtual PC could not open the Virtual Machine Network Servicesdriver Virtual PC
Unable to install Virtual Guest Services on virtual machine Virtual Server
RE: Virtual PC could not open the Virtual Machine Network Services driver Virtual PC
Vista Home Premium .. Can't install Virtual Server.. so how do Iautomatically start a Virtual PC without a login? Virtual PC
How To: Windows Performance Monitor Virtual Switch Port instance IDto Virtual NIC or VM Virtual Server


Vista Forums is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media Ltd

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46