How to make Parallels and IE8 Snappy!

At last, I have conquered thee, Parallels! So, initially, I had really long load times when launching a Parallels VM from a suspended state. I looked at my disk I/O and it was fighting for a measly 6 MB/s. I tracked that down to an issue with Mozy, which is the cloud backup solution that I use. One part of the solution was to upgrade my client from 1.7.3 to 1.8.0 (not incredibly obvious since they only had the 1.7.3 client on their download page, and you had to read through forum posts to find a link to the 1.8 beta – though looking at their downloads page now, it looks like they've finally put up the 1.8 version). The other thing I had to do was tweak the /Library/LaunchDaemons/com.mozy.backup.plist file to ad:

<key>LowPriorityIO</key>  
<true/>  

Finally, after shutting down and restarting the Mozy Home Backup daemon via:

sudo launchctl unload -w /Library/LaunchDaemons/com.mozy.backup.plist  
sudo launchctl load -w /Library/LaunchDaemons/com.mozy.backup.plist  

And voila, Mozy was no longer sucking up my disk I/O, and Parallels (along with anything else that was disk I/O intensive) improved dramatically.

Ah, but once I had Parallels loading fast, I was still faced with a problem. Internet Explorer seemed to have an extremely long lag, not due to the responses from a web server, in loading a page. I'm talking 6-8 seconds before even trying to grab anything and practically freezing the application until that time elapsed. For a while, I was okay with this because it was at least better than the previous state of affairs where Parallels would kill my whole system while trying to load due to insanely poor disk I/O. But as The Paradox of Choice points out, us human beings adapt to any good thing much too quickly to enjoy it for long. I whipped out the google-fu and first started looking for Parallels/IE related topics, figuring this sluggishness has to be something many people are annoyed about and that someone would have a workaround for. No luck. Lacking an actual dedicated Windows box to test on, I also foolishly thought it might have nothing to do with the fact that I was running Parallels. Maybe it was any Windows 7/IE8 combo? This was sort of backed up by the fact that Firefox worked just fine on the Parallels machine. But I should have considered that even Microsoft wouldn't be so silly as to give their users such a huge performance hit with using their browser. And, of course, my searches proved fruitless. Anything I found was about turning off plugins, etc. which I had already done.

So, I gritted my teeth and dealt with things the way they were a while longer. Then at work, I was using VMWare Fusion, and I noticed that once I got everything loaded up (load time not being quite as nice as Parallels 6), Internet Explorer was actually pretty snappy. With that in mind, I went back to my Parallels install and looked for the most likely suspect: Parallels Internet Security, which Parallels prompts you to install as part of Parallels Tools.

I started by just turning off everything. And, what do you know? Suddenly that 6-8 second application freeze was gone.

Not wanting to leave my VM completely unprotected (it was a Windows install, after all), I applied the equivalent of a binary search to the process of disabling things. First I disabled half the stuff and left the other half running. Then whichever half seemed to be the culprit, I disabled half of that. And so on.

It got down to two things.

  1. The Anti-Malware: Files and Memory scan (in particular, the inclusion of at least the main hard drive in the scope); and

  2. System Security: Proactive Defence (I tried disabling individual items here, but after exhausting all possible options for disabling, things were still sluggish, so it looks like the speed hit must be somewhere in the three options (to do with trojans, worms, etc.) that they don't let you uncheck.

Important Note: I had to disable both of these. I'm not entirely sure why. But leaving one disabled and the other enabled would result in the same drastic performance hit as leaving both enabled. If you're not going to do both, you might as well leave things as they are because you're not going to see any improvement.

Now Parallels Internet Security will not like this so much. You'll see that it's gone to level Yellow (medium risk of something bad happening?). I don't like yellow. I like green. And I was able to go into the status messages and hide the "Some components are disabled" message to give me back the wonderfully (and falsely) comforting "green" status. Here's my thinking behind this... warnings are only good if they're distracting. Had I left things at yellow, and some other warning appeared that didn't affect performance but meant I should update something, etc. I likely wouldn't look at it because I'd assume it was just those things I'd turned off. But hey, if you want to leave it yellow, go ahead.

NOW FOR THE REALLY BIG DISCLAIMER: I'm not entirely sure how much more susceptible to attack this system will be now. If you do the same, you will be taking a bit of a risk, and I claim no responsibility for what happens to you when you click that "ClickMeRightNow.exe" file that your friend just sent you (because you totally trust your friends, right?). But as we all learned in the insanity that followed 9/11, more security usually requires less liberty (in my case, liberty from horrible performance), and well, some of us just think life's better with a little more liberty, even if we take on a bit more risk. I'm a web developer. The only reason I need Internet Explorer in the first place is that half of the damned internet doesn't know there are other (better) browsers out there (that said, kudos to the IE9 team – I hear it's great, meaning it's more like the other browsers, and once I can actually install the thing, I'm sure I'll enjoy the better browsing experience). I suspect that that the craptacular nature of Internet Explorer throughout history is the reason most people install Parallels – in order to test their websites with it. And if you're only going to be visiting your own websites in your Parallels session (or ones that are completely trustworthy), there's probably a lot more than this that you could do away with.

All that said, I'll be sure to let the Parallels team know about this issue and if a lot of other people are affected, they might end up fixing it in a new update. Right now, I hear, they're working hard on updating the software to be able to handle the IE9 install, though still no word on the progress of that one either.