Sunday, November 25, 2007

5 minute performance picture: Paragon NTFS for Mac OS X

I have a macbook pro, and a large amount of files, and I like to play computer games.
So, I have a large external firewire/USB2 hard drive, and boot camp.
This also means I care about NTFS access from OSX. 
I'd been running MacFuse + NTFS3G. The performance was not toooo bad, but it was chock full of bugs. Drives would show up as network drives, and be called "-n External" and "-n" instead of "External". Not to mention that sometimes stuff would just randomly break. Files would sometimes disappear or move around in the finder and sometimes I just simply couldn't mount the drive. It sucked pretty hard, so I ended up booting up vmware and accessing that drive via vmware's USB2 mapping + samba under the windows VM. Not cool
Suffice to say I was very happy when I saw the release of Paragon NTFS for OSX
I downloaded it, got rid of MacFUSE and NTFS3G, and ran some benchmarks.
Before the benchmark results, let me first say that even if it was just as slow as MacFUSE/NTFS3g, Paragon NTFS would still be worth a look, because it seems (so far) to be rock solid. Drives show up as proper drives in the finder. The volume labels are fine, as is everything else I can see. There is no lag, and I even now have the option of backing up my boot camp partition with Time Machine. Basically it's as if Apple had actually bothered to implement full NTFS support in leopard. That's cool.
Anyway, Benchmarks:
To get the write speeds, I did this:
dd if=/dev/random of=//tmp/bigfile bs=1m count=200
For the read speeds, I did this:
dd if=//tmp/bigfile of=/dev/null
Yes I am aware this is a crap method of benchmarking drives/filesystems. I'm not anandtech and I don't have days to do this.
Computer: MacBook Pro 2.2ghz (the cheapest one)
External NTFS drive: 7200RPM 500gig seagate with 16 meg of cache
External HFS+ drive: 7200RPM 160gig seagate with 8 meg of cache
Both use the identical dirt cheap firewire/USB2 enclosures I found at the local PC shop
  WRITE (Bytes/Sec) WRITE (MB/Sec) Read (Bytes/Sec) Read (MB/Sec)
HFS+ Firewire 6049969 5.77 91697378 87.45
NTFS Firewire 6645725 6.34 19899810 18.98
HFS+ Local 6565372 6.26 90154137 85.98
NTFS Local 6495106 6.19 16776180 16.00
HFS+ is obviously doing some kind of caching on those reads, as there's no way you can get 85+MB/sec off a plain old 7200rpm drive, let alone the 5400rpm Local drive in the macbookpro. For Actual Use, I can't tell the difference between the NTFS and HFS+ drives
Also, the read/write speeds suck compared to the 30/25 odd MB/sec windows reports when reading/writing files to the disk. But windows lets you enable write caching for removable drives. Maybe OSX doesn't do this. I don't know.
Apart from that, it keeps up with HFS+ and in some cases beats it.
That's Not Half Bad. I might send some my hard-earned paragon's way.

1 comment:

Anatoly said...

Dear Orion,

My name is Anatoly. I am Product Manager for Paragon NTFS for Mac OS X driver.

Thank you for your time and efforts to measure the performance of Paragon NTFS for Mac OS X driver.

Frankly speaking your results are not exactly correct for real time usage of the driver. First of all, the Finder application handles files (copy, create,...) using 2MB block size rather than 512B you tested (the "dd if=//tmp/bigfile of=/dev/null" command uses 512KB block size by default). Second, to get precise figures you have to unmount/mount partitions every time you perform any test (the reason you got - 87.45MB/Sec).

So, we retested our driver and would like to show you our results. We used commands that are similar to yours:

For write:
dd if=/dev/random of=/Volumes/bigfile bs=2m count=100
For read:
dd if=/Volumes/bigfile of=/dev/null bs=2m

HFS+ Firewire:
Write (MiB/sec) - 4,26;
Read (MiB/sec) - 36,06.

NTFS Firewire:
Write (MiB/sec) - 4,24;
Read (MiB/sec) - 35,26.

Please note in case we will use "bs=1m" we get:

HFS+ Firewire:
Write (MiB/sec) - 4,34;
Read (MiB/sec) - 39,29.

NTFS Firewire:
Write (MiB/sec) - 4,30;
Read (MiB/sec) - 42,25.

According to our tests we can assert that our driver has the same performance as the native HFS+ driver has.

Let me know if I am wrong.

Thank you,