Mac Virtual Machines
Filed under: Computer Software — mike @ 11:48 am
Acomplia Online Buy Prednisone Motilium No Prescription Antabuse For Sale Elimite Generic Buy Nexium Online Propecia Without Prescription Nizoral No Prescription Aldactone For Sale Hoodia GenericVirtual machines have come a long way since I first started playing around with VMware several years ago. As a software developer and Mac user, I’ve been anxiously following the great leaps forward made by Intel, Apple, Parallels and VMware over the past year.
First, Apple made the switch to Intel processors. Since many operating systems are used primarily on x86 systems (mostly Intel and AMD), Mac software previously had to translate x86 instructions so that it could run on PowerPC processors. This translation incurred an expensive performance penalty that made Mac virtual machines much slower than their PC counterparts. With Apple’s switch to Intel processors, this performance barrier was removed.At the same time, Intel was not only developing chips with more processing cores, but also adding new virtualization technologies to their chips that offloaded to specialized hardware some of the common operations used by virtual machines. Apple has kept excellent pace with Intel by regularly releasing new hardware that incorporates these cutting-edge technologies.
Parallels launched “Parallels Desktop for Mac” about a year ago, and I have downloaded and used almost every release since. This was the first package to take advantage of the latest virtualization technology in Mac’s Intel processors, and for the first time made Mac virtual machines faster than any other platform. Like many others, I felt that operating systems seemed to run faster in my Mac virtual machines than they ran natively without any virtualization.
Parallels has overall done a great job of producing a solid product. However, many feel their customer support has suffered greatly over the past year. Furthermore, many Linux users are frustrated with their apparent focus on Windows. Despite their addition of many new Windows features, there are many Linux bugs which have gone unresolved for over ten months. Parallels also has not yet released a “tools” package for anything but Windows. This is the software that makes a virtual machine run faster and more seamlessly.
Meanwhile, VMware has been working on “VMware Fusion for Mac,” a Parallels competitor that has not yet been released for sale. VMware is the 500 pound gorilla in the virtualization space, and they have long supported the use of many different operating systems within their virtual machines. The first two beta releases of VMware Fusion left a lot to be desired. Although they provided the “tools” package for Linux, they ran extremely slow (to the point of being unusable, IMHO). This was apparently due to their inclusion of debugging information.
Recently, VMware released a third beta which allows you to improve performance by disabling the debugging information. I decided to run a few tests to see how the latest VMware release compares to Parallels, in particular for Linux software development. Here are the results:
(UPDATE 4/19/2007: These results are seriously flawed due to a few problems Eric points out below in the comments. Please see my new post entitled “Mac VMs Revisited” for more accurate results)
Test Machine: MacBook Pro dual-core @ 2Ghz
Memory: 2GB 667 Mhz DDR2 SDRAM
Disk: 100GB 7200 RPM
Software: Mac OS X 10.4.9
VM OS: CentOS Linux 4.4 (all the latest patches via yum)
Test: Build a moderately-sized C++ software package with G++ (make -j2)
First test: Parallels Build 3188 (single-core, UMP kernel)
Boot time (to X login screen): 0 min 40 sec
Build time (real): 4 min 47 sec
Build time (user): 3 min 20 sec
Build time (sys): 1 min 13 sec
CPU when idle: 20-25%
Second test: VMware Fusion Beta 3 (single-core, UMP kernel)
Boot time (to X login screen): 1 min 20 sec
Build time (real): 5 min 22 sec
Build time (user): 4 min 7 sec
Build time (sys): 0 min 35 sec
CPU when idle: 20-25%
Third test: VMware Fusion Beta 3 (dual-core, SMP kernel)
Boot time (to X login screen): 1 min 20 sec
Build time (real): 3 min 25 sec
Build time (user): 4 min 43 sec
Build time (sys): 0 min 45 sec
CPU when idle: 50-70%
Both the VMware tests I performed with debugging information disabled, and with the “tools” installed and running. I ran all tests several times to make sure the numbers were equivalent, and I took the average value for cases in which there was a slight difference.
These tests indicate that VMware’s use of multiple cores give it a significant (almost 30%) advantage over Parallels, which currently only supports a single core (in fact, Parallels hangs if you try to boot with an SMP kernel). However, Parallels has a strong (12%) edge over VMware when only one core is being used.
Both Parallels and VMware seems to have a problem with CPU usage when a virtual machine is idle (0% CPU usage reported). It really makes little sense to me that a virtual machine should consume more than 5% CPU when it is idle. VMware seems to have a much more serious problem with this when multiple cores are enabled: between 50% and 70% of a CPU core is consumed to do nothing at all.
Parallels has announced that they expect to include multi-core support in their next release. If they can maintain their single-core efficiency, I suspect this will again put them ahead of VMware. Alternately, if VMware is able to solve their multi-core waste problems, their performance will likely stay competitive or be better than Parallels.
My tests merely compare the performance of virtual machines for use in Linux software development. Using virtual machines for other purposes would likely produce different results. For example, I feel that Parallels’ support for Windows is still superior to VMware’s. Furthermore, what you use the virtual machine for makes a huge difference. For example, software development takes full advantage of multiple processing cores. Most other applications do not. Therefore, I would expect Parallels still reigns supreme for most other use cases due to its superior single-core performance.
I believe that the future is looking very bright for Mac virtualization. Competition between these two products will likely produce better solutions for customers. The combination of Mac OS X’s user interface and development tools, along with support for the latest in virtualization hardware and software technology, make it an ideal platform for software development. I recently ordered a new 8-core Mac Pro, and am anxiously awaiting to kick the tires around on that.
April 19th, 2007 at 5:19 am
Number 1 question: did you use the aiomgr.buffered switch in your Fusion tests? If not, this probably wasn’t a fair comparison since by default, Parallels uses the equivalent (”Guest OS Performance Optimized”)
How much memory was dedicated to the guest? Did you ensure the guests was truely idle (by looking at the guest’s process monitor) or did you just assume they were idle because they didn’t seem to be doing anything?
“(0% CPU usage reported)” seems like a typo, did you mean 10%?
Finally, you are of course aware that section 4 of VMware’s EULA (like section h of Restrictions on Grant of Parallel’s EULA) forbids publication of benchmarks of beta products, right?
April 19th, 2007 at 7:29 am
I did not use the “aiomgr.buffered” switch that you mention, as I was not aware that such a switch existed. I will certainly try to track that down.
All of the guests were configured with 512 MB memory. I did ensure that they were idle by using “ps” and “top.” “0%” is probably misleading, though; I should have probably said “less than 1%.”
I did not see the restriction in VMWare’s click-through license, as like many people I never actually read those things =) As a software developer myself, I am sure such a silly restriction would never hold up in court. The purpose of evaluating this type of software is mainly to compare performance. I doubt they would argue with such a favorable review (keep in mind it is FASTER), considering that all the reviews other people published regarding the prior Fusion betas reported terrible performance.
April 19th, 2007 at 3:32 pm
I misread the bit about 0%, sorry - I thought you were saying the *host* was reporting 0% and you were confused because you didn’t expect more than 5%, which didn’t make sense.
The high idle CPU usage is due to your distro (see for example http://bugs.centos.org/view.php?id=1680 or http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1420). Also, you should see a bigger performance win from vSMP on the Mac Pro.
And they might argue with your review because a fair one might be even more favorable
For example, with aiomgr.buffered, uniprocessor Fusion might win against uniprocessor Parallels.
Also, nitpick: it’s UP, not UMP - the M is for multiprocessor.
April 19th, 2007 at 6:54 pm
[…] my last post on Mac Virtual Machines, I ran a few tests to compare VMware Fusion & Parallels for Mac. Eric pointed out a few tips in […]
May 11th, 2007 at 2:36 pm
I am actually seeing a 100% utilization of my processor with Parallels when Idle. Very frustrating. It makes it impossible to do anything in windows.
May 15th, 2007 at 8:46 am
Mikey: That sounds like a bug. You should contact Parallels support about it. You might want to try disabling sound or your USB devices to determine if it is some form of driver conflict.
June 8th, 2007 at 1:05 am
What is the VMWare Fusion 4 CPU usage when the machine is idle? I see Parallels usage is at 30-40% which is a major disappointment.
Also, do you know if there are any utilities to migrate a Parallels VM to a VMWare VM and vice versa?
June 8th, 2007 at 8:48 am
I haven’t played around with either of the latest beta versions. Please see my follow-up post, “Mac VMs Revisited,” for info on how to fix idle CPU problems (under Linux).
Parallels Transporter lets you convert VMware VMs into Parallels VMs. You can use VMware Converter to convert into VMware’s format; however, I’m not sure if they’ve added support for Parallels yet.