Wednesday, May 21, 2008

Why Is Mozy So Slow?

I have good backup habits. At least I do now.

I hate to admit it, but it took losing not one, but two, hard disks (one to a hardware failure, the other to a particularly virulent virus with a rootkit) and some critical data to get me there. But I'm all better now. Really.

I have a USB hard disk that I do full backups to and I use Mozy (the paid version) for offsite backups of critical stuff. I used to use Carbonite but felt it was slow and it lacked configuration options that I wanted. And Mozy works great for my wife, whose total backup is less than 2GB. But, for me, Mozy slows my machine down to a crawl whenever a backup starts.

Now, I know I have a big backup. It's currently 157,070 files for a total of 84GB. And that isn't even everything. I have hundreds of gigabytes of photos that aren't in my Mozy backup set. Most of what I have backed up isn't changing on a regular basis.

How slow is it?

Here are some examples.

Opening the Mozy Configuration window (just opening it!) takes 20 minutes. Note that you have to open the Configuration window to change any settings or get status information on previous backups.

The backup itself takes hours to days. A small backup, 290 files totaling 75MB, took 4 hours. Of this time, almost all of the time was spent scanning my hard disk and compressing files for backup. The actual transfer took only 3 minutes.

A backup of 1000 digital photos totaling 5GB took took more than 4 days (that's with the machine on, nonstop). Of that time, 47 hours were prep and only 8 hours were transfer. What was it doing for 47 hours?!

To make matters worse, any interruption of the backup (like hibernating my machine or losing a network connection) looks like it restarts the whole thing.
Where's the slowdown?

Let's look at the transfer speed first. 5GB over 8 hours is only 625MB per hour, which is about 10% of my upstream capacity. So, it's obviously not network constrained.

Could it be CPU or disk constrained? It's hard to separate the two without a deeper analysis that I can't do easily, but I have a good way to look at the overall picture. For my USB backups, I use SyncBackSE from 2BrightSparks, which I like very much -- unlike most so-called sync products, SyncBackSE actually knows how to do a true sync operation, including dealing with conflicts. And it's great for backups. A backup of almost 3,000 files totaling 6GB took just 34 minutes from start to finish, including 16 minutes scanning 460,000 files (3x times the number in my Mozy backup set) and 18 minutes copying.

Mozy does seem to be doing way too much I/O. Looking in Task Manager, it looks like SyncBackSE reads and writes very little more (maybe 10% more) than the data being backed up. That's about what I would expect. But Mozy's two processes (mozybackup.exe and mozystat.exe) read more than 15 bytes for every byte being backed up and write about 2 bytes for every byte being backed up, and that's excluding the network I/O. And it also looks like they are writing tiny packets to their server (an average of 8 bytes per Other I/O request). This certainly doesn't seem right to me.

Except for the backup that took 4 days, all of the Mozy backups occurred in the middle of the night while I wasn't using the machine, so there was no contention on the machine. Mozy does have an option for how much CPU it will consume. But, it doesn't seem to make much of a difference when I told Mozy it could have as much CPU as it wanted, either in how fast the backup happens or in the performance of my machine (it makes it crawl, either way). Remember, it takes 20 minutes of waiting for the Configuration window to open in order to change that option. To be fair, SyncBackSE also slows the machine down dramatically when it's running, but it's over a much shorter period of time.

I'm not expecting Mozy to be as fast as a local backup, but it's more than 100 times slower and there doesn't appear to be any reason for it. Mozy's scanning is 600 times(!) slower than SyncBackSE when it ought to be just as fast. I would guess, from what I can see, that Mozy stores the backup set database remotely instead of locally (why?), but that still shouldn't account for a 600x difference. Maybe Mozy needs to buy 2BrightSparks and use whatever it is they've done.

What's the answer?

I wish this blog post ended with an answer instead of a question, but I don't know the answer. Maybe the people at Mozy do. Maybe they'll enlighten us.

What I do know is that I have to look elsewhere. A full backup for me is already hundreds of gigabytes and growing fast. I use a 16GB card in my camera and, yes, I fill it sometimes. Add to that the huge, high-res Photoshop files that I create when I'm working on one of my montages.

I'm planning to look at FolderShare, BeInSync, and LogMeIn Backup. I have to say I don't really like the idea of paying a subscription fee to backup to my own hard disk, which I also have to find a remote server to put it on. Suggestions welcome.