Page 1 of 1

Guest performance terrible with IOapic, amazing without it

Posted: 5. Jan 2012, 00:07
by azenz
Installing my Windows XP guest with my Virtualbox 4.1.8 (installed from website .deb, 64 bit version) on my Kubuntu 11.10 host took an extremely long time. Booting the virgin system on my fast SSD took minutes. After some googling I found that in previous years the IOapic feature with multiple CPUs was the culprit. So I changed the system to 1 CPU with IOapic disabled, and lone behold, the system boots in about 10 secs, and performance is lightning fast! I mean you won't believe the difference. Before, even opening "My computer" took quite a while, and now it occurs instantly.

Since I use a quad core machine, that of course now means that only 1 cpu can be used by the guest OS. I am very disappointed about that. Surely, such a long-standing problem that people wrote about years ago must have been addressed by now? Anybody any suggestions?

Settings file is below:

Code: Select all

<VirtualBox xmlns="http://www.innotek.de/VirtualBox-settings" version="1.12-linux">
  <Machine uuid="{4d9a6ce5-4050-4ac6-8e4e-0d2aa5435d75}" name="WinXP" OSType="WindowsXP" snapshotFolder="Snapshots" lastStateChange="2012-01-04T22:00:29Z">
    <MediaRegistry>
      <HardDisks>
        <HardDisk uuid="{68065bc8-5948-429f-b8e9-fc695e119160}" location="WinXP.vdi" format="VDI" type="Normal"/>
        <HardDisk uuid="{295dab32-fc4a-4893-bab2-19f2aa845dc7}" location="2nd-HDD.vdi" format="VDI" type="Normal"/>
      </HardDisks>
      <DVDImages>
        <Image uuid="{78e74a3d-44c2-4407-ae09-422e160aff48}" location="/media/1F10FD8E55DF1C92/Program backup/Software/WinXP/WinXPpro-sp3-original.iso"/>
        <Image uuid="{be913414-e4f2-4cad-b866-50b628161561}" location="/usr/share/virtualbox/VBoxGuestAdditions.iso"/>
      </DVDImages>
      <FloppyImages/>
    </MediaRegistry>
    <ExtraData>
      <ExtraDataItem name="GUI/InfoDlgState" value="400,450,normal"/>
      <ExtraDataItem name="GUI/LastCloseAction" value="powerOff"/>
      <ExtraDataItem name="GUI/LastGuestSizeHint" value="1544,1069"/>
      <ExtraDataItem name="GUI/LastNormalWindowPosition" value="374,23,1544,1111"/>
    </ExtraData>
    <Hardware version="2">
      <CPU count="1" hotplug="false">
        <HardwareVirtEx enabled="true" exclusive="true"/>
        <HardwareVirtExNestedPaging enabled="true"/>
        <HardwareVirtExVPID enabled="true"/>
        <PAE enabled="false"/>
        <HardwareVirtExLargePages enabled="false"/>
        <HardwareVirtForce enabled="false"/>
      </CPU>
      <Memory RAMSize="2256" PageFusion="false"/>
      <HID Pointing="USBTablet" Keyboard="PS2Keyboard"/>
      <HPET enabled="false"/>
      <Chipset type="PIIX3"/>
      <Boot>
        <Order position="1" device="Floppy"/>
        <Order position="2" device="DVD"/>
        <Order position="3" device="HardDisk"/>
        <Order position="4" device="None"/>
      </Boot>
      <Display VRAMSize="32" monitorCount="1" accelerate3D="false" accelerate2DVideo="true"/>
      <RemoteDisplay enabled="false" authType="Null" authTimeout="5000">
        <VRDEProperties>
          <Property name="TCP/Ports" value="3389"/>
        </VRDEProperties>
      </RemoteDisplay>
      <BIOS>
        <ACPI enabled="true"/>
        <IOAPIC enabled="false"/>
        <Logo fadeIn="true" fadeOut="true" displayTime="0"/>
        <BootMenu mode="MessageAndMenu"/>
        <TimeOffset value="0"/>
        <PXEDebug enabled="false"/>
      </BIOS>
      <USBController enabled="true" enabledEhci="true"/>
      <Network>
        <Adapter slot="0" enabled="true" MACAddress="080027F95D22" cable="true" speed="0" type="82540EM">
          <DisabledModes/>
          <NAT>
            <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
            <Alias logging="false" proxy-only="false" use-same-ports="false"/>
          </NAT>
        </Adapter>
        <Adapter slot="1" enabled="false" MACAddress="080027F1893F" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="2" enabled="false" MACAddress="080027A49E7B" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="3" enabled="false" MACAddress="0800279946DF" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="4" enabled="false" MACAddress="080027F6912B" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="5" enabled="false" MACAddress="08002742191B" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="6" enabled="false" MACAddress="0800276457D1" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
        <Adapter slot="7" enabled="false" MACAddress="0800270E1E1E" cable="true" speed="0" type="Am79C973">
          <DisabledModes>
            <NAT>
              <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
              <Alias logging="false" proxy-only="false" use-same-ports="false"/>
            </NAT>
          </DisabledModes>
        </Adapter>
      </Network>
      <UART>
        <Port slot="0" enabled="false" IOBase="0x3f8" IRQ="4" hostMode="Disconnected"/>
        <Port slot="1" enabled="false" IOBase="0x2f8" IRQ="3" hostMode="Disconnected"/>
      </UART>
      <LPT>
        <Port slot="0" enabled="false" IOBase="0x378" IRQ="4"/>
        <Port slot="1" enabled="false" IOBase="0x378" IRQ="4"/>
      </LPT>
      <AudioAdapter controller="AC97" driver="Pulse" enabled="true"/>
      <RTC localOrUTC="local"/>
      <SharedFolders>
        <SharedFolder name="External-HDD" hostPath="/media/1F10FD8E55DF1C92" writable="true" autoMount="true"/>
        <SharedFolder name="Internal-HDD" hostPath="/media/5691cc51-183f-459e-a0e1-dd0ca3c6399e" writable="true" autoMount="true"/>
        <SharedFolder name="home-adrian" hostPath="/home/username" writable="true" autoMount="true"/>
      </SharedFolders>
      <Clipboard mode="Bidirectional"/>
      <IO>
        <IoCache enabled="true" size="5"/>
        <BandwidthGroups/>
      </IO>
      <HostPci>
        <Devices/>
      </HostPci>
      <Guest memoryBalloonSize="0"/>
      <GuestProperties>
        <GuestProperty name="/VirtualBox/GuestInfo/OS/Product" value="Windows XP Professional" timestamp="1325713075042466000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/OS/Release" value="5.1.2600" timestamp="1325713075043354000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/OS/Version" value="" timestamp="1325713075043799000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/OS/ServicePack" value="3" timestamp="1325713075044530000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Version" value="4.1.8" timestamp="1325713075044974000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/VersionExt" value="4.1.8" timestamp="1325713075045355000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Revision" value="75467" timestamp="1325713075049878000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/InstallDir" value="C:/Program Files/Oracle/VirtualBox Guest Additions" timestamp="1325713075050362000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxControl.exe" value="4.1.8r75467" timestamp="1325713075051438000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxHook.dll" value="4.1.8r75467" timestamp="1325713075052202000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxDisp.dll" value="4.1.8r75467" timestamp="1325713075052925000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxMRXNP.dll" value="4.1.8r75467" timestamp="1325713075053722000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxService.exe" value="4.1.8r75467" timestamp="1325713075055138000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxTray.exe" value="4.1.8r75467" timestamp="1325713075055896000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxGINA.dll" value="-" timestamp="1325713075069737000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxCredProv.dll" value="-" timestamp="1325713075075484000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLarrayspu.dll" value="4.1.8r75467" timestamp="1325713075076331000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLcrutil.dll" value="4.1.8r75467" timestamp="1325713075082925000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLerrorspu.dll" value="4.1.8r75467" timestamp="1325713075083720000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLpackspu.dll" value="4.1.8r75467" timestamp="1325713075085015000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLpassthroughspu.dll" value="4.1.8r75467" timestamp="1325713075086618000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGLfeedbackspu.dll" value="4.1.8r75467" timestamp="1325713075087793000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxOGL.dll" value="4.1.8r75467" timestamp="1325713075088958000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxGuest.sys" value="4.1.8r75467" timestamp="1325713075104026000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxMouse.sys" value="4.1.8r75467" timestamp="1325713075104863000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxSF.sys" value="4.1.8r75467" timestamp="1325713075105598000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/Components/VBoxVideo.sys" value="4.1.8r75467" timestamp="1325713075106286000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestAdd/HostVerLastChecked" value="4.1.8" timestamp="1325713088263170000" flags=""/>
        <GuestProperty name="/VirtualBox/HostInfo/GUI/LanguageID" value="en_US" timestamp="1325713330129048000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/OS/LoggedInUsersList" value="" timestamp="1325714423830958000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/0/V4/IP" value="" timestamp="1325714425407622000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/0/MAC" value="" timestamp="1325714425408461000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/0/V4/Netmask" value="" timestamp="1325714425409083000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/0/Status" value="" timestamp="1325714425409848000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/0/V4/Broadcast" value="" timestamp="1325714425410647000" flags=""/>
        <GuestProperty name="/VirtualBox/GuestInfo/Net/Count" value="" timestamp="1325714425412611000" flags=""/>
      </GuestProperties>
    </Hardware>
    <StorageControllers>
      <StorageController name="IDE Controller" type="PIIX4" PortCount="2" useHostIOCache="true" Bootable="true">
        <AttachedDevice type="HardDisk" port="0" device="0">
          <Image uuid="{68065bc8-5948-429f-b8e9-fc695e119160}"/>
        </AttachedDevice>
        <AttachedDevice type="HardDisk" port="0" device="1">
          <Image uuid="{295dab32-fc4a-4893-bab2-19f2aa845dc7}"/>
        </AttachedDevice>
        <AttachedDevice passthrough="false" type="DVD" port="1" device="0">
          <Image uuid="{78e74a3d-44c2-4407-ae09-422e160aff48}"/>
        </AttachedDevice>
      </StorageController>
    </StorageControllers>
  </Machine>
</VirtualBox>
MOD Edit: Please use code tags on long lists

Re: Guest performance terrible with IOapic, amazing without

Posted: 5. Jan 2012, 14:45
by sid1950
I've just tried this and it works. My host is openSuse 12.1 running on a Dell Optiplex GX620. The processor is a Pentium D950 dual core 3.2Ghz with 4Gb DDR2. Apps on Suse are very fast. Previously I had tried running Windows XP Pro with the guest CPU set to 2 cores with IO APIC on. It started and ran very slowly. I re-installed with 1 cpu core and no IO APIC and the difference is amazing. Very fast starting and running. Apps open as if they were on a native XP Pro.

Re: Guest performance terrible with IOapic, amazing without

Posted: 5. Jan 2012, 16:22
by mschwartz
I run Kubuntu 11.10 and Windows XP as a guest with multiple CPUs enabled and IO APIC turned on, and it's quite fast.

My machine has 8G of RAM, and I give the VM 1.5G. My CPU is a core I5 with 4 cores, no hyperthreading.

Maybe you need to check your BIOS settings to see if you have VM support features turned off?

The VM does run faster with 1 CPU, though. IO APIC is a performance penalty, but not like what you describe (for me).

Re: Guest performance terrible with IOapic, amazing without

Posted: 6. Jan 2012, 12:00
by azenz
VM support is enabled in the bios. For me, the iopic performance penalty is very high, and for others such as sid1950 it seems to be, too. That seems to be a real problem in Virtualbox and I wonder if an error ticket has been filed or if the issue is known, widespread etc. Otherwise Virtualbox is great, but that is a serious drawback. Not sure if there are workarounds?

Re: Guest performance terrible with IOapic, amazing without

Posted: 22. Feb 2012, 19:00
by Ken Hagan
This slowdown was quite pronounced on my hosts until recently when I removed IO-APIC from all my 32-bit guests. The worst affected machine (by some margin) was one with McAfee anti-virus software, which would burn 100% CPU for several minutes following boot-up.

I have an Intel/Xubuntu host and an AMD/Win2k3 host, so the problem might be "by design" rather than platform-dependent. (Since both have just two cores, the restriction to uniprocessor guests isn't a big deal for me.) It became particularly noticeable in the latter part of last year, so I think the 4.1.x releases may be especially prone. There's a 4.0.16 lying about somewhere, so perhaps it would be worth making comparisons.

Re: Guest performance terrible with IOapic, amazing without

Posted: 26. Feb 2012, 03:44
by Technologov
arenz and others:
If you want such threads to be treated seriously, you must upload vbox.log (either via pastebin.com or attach to forum directly).

I can tell you, that I install Windows XP in ~7 minutes, using the new vbox-unattended, with default vbox settings.

Core i7 2600K + WD Black 7200 RPM