I'm wondering about the performance differences between Windows guests. If I use a 64-bit guest OS, and it uses WOW64 to emulate 32-bit applications, would the performance be lower or equal to having a 32-bit guest OS and running the 32-bit program natively? In other words, if I have only 32-bit applications that I want to virtualise, is it better to use a 64-bit guest just in case there is some sort of reason to use 64-bit applications, or a 32-bit guest? The host is a 64-bit openSUSE 11.4.
Another question I have is how different the OSs perform between the releases. For instance, how is the performance different between Windows XP 32-bit and Windows 7 32-bit? Or Windows 2000, for that matter? I'd expect that the older OSs are lighter, so they wouldn't tax the host as much, but how do they perform? I'd expect them to have improved something over the years. And are there any differences in how VirtualBox handles it? Do all of them get things like guest additions and Direct3D support?
Differences between different guests
-
GreatEmerald
- Posts: 6
- Joined: 4. Mar 2011, 21:12
- Primary OS: openSUSE
- VBox Version: OSE other
- Guest OSses: Windows XP x64
-
Sasquatch
- Volunteer
- Posts: 17798
- Joined: 17. Mar 2008, 13:41
- Primary OS: Debian other
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: Windows XP, Windows 7, Linux
- Location: /dev/random
Re: Differences between different guests
There is no noticeable difference in running a 32 bit application on a 64 bit Guest OS compared to a 32 bit Guest OS.GreatEmerald wrote:If I use a 64-bit guest OS, and it uses WOW64 to emulate 32-bit applications, would the performance be lower or equal to having a 32-bit guest OS and running the 32-bit program natively? In other words, if I have only 32-bit applications that I want to virtualise, is it better to use a 64-bit guest just in case there is some sort of reason to use 64-bit applications, or a 32-bit guest?
These cannot be compared because of the time difference when they were launched. Computers are a lot more powerful now compared to when XP just got released. It's only normal that XP performs better than 7, but that's because of the hardware requirements. Try it with a native system, run Windows 7 on a machine that's qualified for XP. It won't run as fast as XP.GreatEmerald wrote:For instance, how is the performance different between Windows XP 32-bit and Windows 7 32-bit?
That is a whole different story. Windows 2000 is no longer supported by MS and VB offers only basic support. There are Guest Additions, but you won't be able to benefit from most of the features they offer (like multi monitor support). And naturally, 2000 is more light weight than XP, so the same applies here.GreatEmerald wrote:Or Windows 2000, for that matter?
That depends on the settings of the VM, the Host hardware and the generic load of the system. If you're doing lots of I/O operations on the Host, then naturally the Guest will slow down a lot. If you do lots of multi-core calculations, the Guest will get hit too. As for overall speed/performance, it's mostly up to what the user expects. It's a personal matter when it comes to speed. Some say a boot time of 30 seconds is fast, others say it's slow.GreatEmerald wrote:but how do they perform?
There are only slight differences in how VB handles them, as each OS talks to hardware in a different way. Each method corresponds to a particular way of handling the requests, so it's hard to tell what exactly differs, if there is any difference at all.GreatEmerald wrote:And are there any differences in how VirtualBox handles it?
That is noted in the User Manual.GreatEmerald wrote:Do all of them get things like guest additions and Direct3D support?
Read the Forum Posting Guide before opening a topic.
VirtualBox FAQ: Check this before asking questions.
Online User Manual: A must read if you want to know what we're talking about.
Howto: Install Linux Guest Additions
Howto: Use Shared Folders on Linux Guest
See the Tutorials and FAQ section at the top of the Forum for more guides.
Try searching the forums first with Google and add the site filter for this forum.
E.g. install guest additions site:forums.virtualbox.org
Retired from this Forum since OSSO introduction.
VirtualBox FAQ: Check this before asking questions.
Online User Manual: A must read if you want to know what we're talking about.
Howto: Install Linux Guest Additions
Howto: Use Shared Folders on Linux Guest
See the Tutorials and FAQ section at the top of the Forum for more guides.
Try searching the forums first with Google and add the site filter for this forum.
E.g. install guest additions site:forums.virtualbox.org
Retired from this Forum since OSSO introduction.
-
GreatEmerald
- Posts: 6
- Joined: 4. Mar 2011, 21:12
- Primary OS: openSUSE
- VBox Version: OSE other
- Guest OSses: Windows XP x64
Re: Differences between different guests
Ah, I see. I can see that 32-bit program performance on 64-bit machines could be the same, but doesn't running WOW64 itself take more memory and such? Windows 7 requirements seem to indicate so, since the 64-bit edition requires twice as much RAM and 4 GB of additional space.
Speaking about the settings, I went over the manual, and while most settings seem to be pretty straight-forward (usually less means the guess will be slow while more means the host will be slow), I still have a few questions. First of all, when to use the I/O APIC and when not to? People seem to say that it can slow the system down by quite a bit.
Also, what the the advantages and disadvantages of setting more than one processor core for the guest to use? I'd imagine that since I have a quad-core processor, setting the system to use four cores should make multithreading possible. But how will that impact the host? And how come you can set more than the amount of physical cores available? And is there any reason (not) to use the PAE extension?
The manual also states that AHCI can give a good boost to the performance. I know that Windows XP doesn't support it out of the box, but you can either slipstream the drivers or install them after you're done with the installation. The question is, which drivers are compatible with VirtualBox? Also, the manual states that the first few disks automatically use the IDE compatibility mode - is there a way to disable this behaviour?
Speaking about the settings, I went over the manual, and while most settings seem to be pretty straight-forward (usually less means the guess will be slow while more means the host will be slow), I still have a few questions. First of all, when to use the I/O APIC and when not to? People seem to say that it can slow the system down by quite a bit.
Also, what the the advantages and disadvantages of setting more than one processor core for the guest to use? I'd imagine that since I have a quad-core processor, setting the system to use four cores should make multithreading possible. But how will that impact the host? And how come you can set more than the amount of physical cores available? And is there any reason (not) to use the PAE extension?
The manual also states that AHCI can give a good boost to the performance. I know that Windows XP doesn't support it out of the box, but you can either slipstream the drivers or install them after you're done with the installation. The question is, which drivers are compatible with VirtualBox? Also, the manual states that the first few disks automatically use the IDE compatibility mode - is there a way to disable this behaviour?
-
Sasquatch
- Volunteer
- Posts: 17798
- Joined: 17. Mar 2008, 13:41
- Primary OS: Debian other
- VBox Version: VirtualBox+Oracle ExtPack
- Guest OSses: Windows XP, Windows 7, Linux
- Location: /dev/random
Re: Differences between different guests
No idea. I guess it makes sense if it requires more memory, as it's run in a compatibility layer, but I doubt it would be much. The requirements for a 64 bit OS isn't much different than a 32 bit one. MS just made it a bit more to avoid any possible complaints about performance.GreatEmerald wrote:I can see that 32-bit program performance on 64-bit machines could be the same, but doesn't running WOW64 itself take more memory and such?
You have to know what I/O APIC implies before you understand why it's needed and when. I'm not going to explain it here, you can read it on Wikipedia if you want.GreatEmerald wrote:First of all, when to use the I/O APIC and when not to?
Advantage: the Guest has more processing power and resources to take advantage of. Disadvantage: depending on the Guest and when it's enabled, performance can go down instead. The Host is also sharing more resources than it would otherwise have for it's own.GreatEmerald wrote:Also, what the the advantages and disadvantages of setting more than one processor core for the guest to use? I'd imagine that since I have a quad-core processor, setting the system to use four cores should make multithreading possible.
If you give the Guest all the cores of your Host, you will get the same performance impact when both systems are under full load and they share a single core CPU. If your Guest goes berserk and utilizes all the cores, the Host will have nothing left and slow down to a crawl. It can even bring down the system. If you leave at least one core for the Host, this will not happen, as there is always some processing power untouched by the Guest that the Host can use.GreatEmerald wrote:But how will that impact the host?
That may be possible, but can you even acknowledge the settings? In other words, can you set 6 cores when you have a normal quad core CPU? I reckon VB will not allow this, as you are asking for more resources than is actually available. Same like setting 8 GB RAM for a Guest when the Host has only 6 at most (or it has 8, but since the OS needs some too, it will not be all available for use for Guests).GreatEmerald wrote:And how come you can set more than the amount of physical cores available?
Same as I/O APIC. Some things need this setting. Linux server for example, has it's kernel configured to require PAE. When you use a 64 bit Guest, this same feature is required.GreatEmerald wrote:And is there any reason (not) to use the PAE extension?
The boost is because SATA (or AHCI if you want) emulation has a lower overhead than IDE emulation. If you want compatible drivers, check Tutorials and Rules/FAQ. There's a howto there with the driver attached.GreatEmerald wrote:The manual also states that AHCI can give a good boost to the performance. The question is, which drivers are compatible with VirtualBox?
That means that physical hardware has to do away with this compatibility as well. Without this compatibility, the system will not boot. Just try to attach a bootable VDI to the fifth SATA port (port 4, counting starts at 0). It will not boot. When you put it on another port, like 3, it will boot.GreatEmerald wrote:Also, the manual states that the first few disks automatically use the IDE compatibility mode - is there a way to disable this behaviour?
Read the Forum Posting Guide before opening a topic.
VirtualBox FAQ: Check this before asking questions.
Online User Manual: A must read if you want to know what we're talking about.
Howto: Install Linux Guest Additions
Howto: Use Shared Folders on Linux Guest
See the Tutorials and FAQ section at the top of the Forum for more guides.
Try searching the forums first with Google and add the site filter for this forum.
E.g. install guest additions site:forums.virtualbox.org
Retired from this Forum since OSSO introduction.
VirtualBox FAQ: Check this before asking questions.
Online User Manual: A must read if you want to know what we're talking about.
Howto: Install Linux Guest Additions
Howto: Use Shared Folders on Linux Guest
See the Tutorials and FAQ section at the top of the Forum for more guides.
Try searching the forums first with Google and add the site filter for this forum.
E.g. install guest additions site:forums.virtualbox.org
Retired from this Forum since OSSO introduction.
-
GreatEmerald
- Posts: 6
- Joined: 4. Mar 2011, 21:12
- Primary OS: openSUSE
- VBox Version: OSE other
- Guest OSses: Windows XP x64
Re: Differences between different guests
Hmm, I'm still rather confused by the I/O APIC (Wikipedia has little information about it and it's confusing to begin with), but I guess there is no harm in trying it with it enabled and disabled to see the differences, if any.
The tip about setting it to the maximum minus one core sounds great, thanks! About PAE, I know that it's required if you want the OS to read more or equal to 4 GB of RAM, and it has something to do with the DEP feature of Windows XP. Still, I don't see if there is any difference between having it on or off if your virtual machine has less than 4 GB RAM.
Thanks for the link! Your help is very much appreciated!
The tip about setting it to the maximum minus one core sounds great, thanks! About PAE, I know that it's required if you want the OS to read more or equal to 4 GB of RAM, and it has something to do with the DEP feature of Windows XP. Still, I don't see if there is any difference between having it on or off if your virtual machine has less than 4 GB RAM.
Thanks for the link! Your help is very much appreciated!