{"id":159,"date":"2009-07-02T02:43:35","date_gmt":"2009-07-02T02:43:35","guid":{"rendered":"http:\/\/patrick-nagel.net\/blog\/?p=159"},"modified":"2009-07-13T10:44:33","modified_gmt":"2009-07-13T02:44:33","slug":"virtualbox-3-smp-for-guests","status":"publish","type":"post","link":"https:\/\/patrick-nagel.net\/blog\/archives\/159","title":{"rendered":"VirtualBox 3 &#8211; SMP for guests"},"content":{"rendered":"<p><a href=\"http:\/\/www.virtualbox.org\/\">VirtualBox<\/a> &#8211; my current favourite desktop virtualisation software &#8211; has been released in version 3.0.0 two days ago, so I gave it a try. The most interesting new feature in this new version is the &#8220;Guest SMP&#8221; support. It finally removes the limitation, that a guest can only work on one host core (which means, when you have a 4-core host CPU, the guest could only run with 1\/4 of the speed).<\/p>\n<p>The documentation is not very clear about what &#8220;Guest SMP&#8221; <em>really<\/em> does &#8211; it could, for example, just show multiple CPUs to the guest, but still only use one host core. To make sure that my assumption of VirtualBox 3 actually making it possible to assign multiple host CPUs\/cores to the guest, so that it can actually run faster, I did a quick test. I started by making one of my Linux VMs a dual CPU VM:<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2009\/07\/vbox3_multi_cpu2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/2009\/07\/vbox3_multi_cpu2.png\" alt=\"vbox3_multi_cpu2\" title=\"vbox3_multi_cpu2\" width=\"418\" height=\"169\" class=\"alignnone size-full wp-image-162\" srcset=\"https:\/\/patrick-nagel.net\/blog\/wp-content\/uploads\/2009\/07\/vbox3_multi_cpu2.png 418w, https:\/\/patrick-nagel.net\/blog\/wp-content\/uploads\/2009\/07\/vbox3_multi_cpu2-300x121.png 300w\" sizes=\"auto, (max-width: 418px) 85vw, 418px\" \/><\/a><\/p>\n<p>In the VM, I then started to build the Linux kernel, once with <code>make -j1<\/code> and once with <code>make -j2<\/code>. This is my CPU usage monitor on the (2-core) host, which shows both cores&#8217; usage combined:<\/p>\n<p><a href=\"\/blog\/wp-content\/uploads\/2009\/07\/vbox3_multi_cpu.png\"><img loading=\"lazy\" decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/2009\/07\/vbox3_multi_cpu.png\" alt=\"vbox3_multi_cpu\" title=\"vbox3_multi_cpu\" width=\"63\" height=\"85\" class=\"alignnone size-full wp-image-160\" \/><\/a><\/p>\n<p>In section 1 of the graph, only one compiler process is running (<code>make -j1<\/code>). At the end of section 1 I aborted the building process and (in section 2) I typed in <code>make -j2<\/code>. Thus, section 3 shows the CPU usage when two compiler processes are running simultaneously in the VM. So my assumption was correct, it is now possible to make all of the host&#8217;s processing power available in a VM.<\/p>\n<p>Thanks, VirtualBox team! (I won&#8217;t address the company behind VirtualBox, since this would probably cause my post to be outdated before I can press the &#8220;Publish&#8221; button). Lets just hope that this great project will see further development, it is currently the best desktop virtualisation project available, in my opinion. It would be even greater if all of the functionality was available in the Open Source version though. This would ensure that, no matter what the current company behind VirtualBox decides to do with it, development could go on.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>VirtualBox &#8211; my current favourite desktop virtualisation software &#8211; has been released in version 3.0.0 two days ago, so I gave it a try. The most interesting new feature in this new version is the &#8220;Guest SMP&#8221; support. It finally removes the limitation, that a guest can only work on one host core (which means, &hellip; <a href=\"https:\/\/patrick-nagel.net\/blog\/archives\/159\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;VirtualBox 3 &#8211; SMP for guests&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-159","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/patrick-nagel.net\/blog\/wp-json\/wp\/v2\/posts\/159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/patrick-nagel.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/patrick-nagel.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/patrick-nagel.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/patrick-nagel.net\/blog\/wp-json\/wp\/v2\/comments?post=159"}],"version-history":[{"count":9,"href":"https:\/\/patrick-nagel.net\/blog\/wp-json\/wp\/v2\/posts\/159\/revisions"}],"predecessor-version":[{"id":170,"href":"https:\/\/patrick-nagel.net\/blog\/wp-json\/wp\/v2\/posts\/159\/revisions\/170"}],"wp:attachment":[{"href":"https:\/\/patrick-nagel.net\/blog\/wp-json\/wp\/v2\/media?parent=159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/patrick-nagel.net\/blog\/wp-json\/wp\/v2\/categories?post=159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/patrick-nagel.net\/blog\/wp-json\/wp\/v2\/tags?post=159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}