Hi all,
I'm the maintainer of the NTFS-3G distribution for Mac OS X. One of
the biggest complaints is that I/O performance is relatively poor.
I've spent a few hours tonight integrating Ale's patches so that they
compile on Mac OS X. (Thanks for sending us notice of the FreeBSD
work!)
The result is, well, fantastic. I've posted more details, and some
quick-and-dirty benchmarks on my blog, including the updated patches
that work on Mac OS X. The files, patches, and new builds are
available here:
http://shadowofged.blogspot.com/2007/05/ntfs-3g-performance-
gains.html
As I mention there, I'm not much of a filesystem guy.
I can only assume that (block_size) * (block_count) is equivalent to
the "media size," as obtained by the FreeBSD ioctl() DIOCGMEDIASIZE;
accordingly, I used that logic as its replacement. More simply, I
replaced DIOCGSECTORSIZE with DKIOCGETBLOCKSIZE, since they appear to
serve the same function based on man pages and the contents of sys/
disk.h on each platform.
If anyone more knowledgeable than I sees a problem here, please let
me know. I have tested the improved builds briefly, but I copied a
large file (650MB) or so, and the MD5 hashes matched. This held true
for internal drives, external drives, and even disk images. Your
mileage may vary, so let me know if any problems crop up.
Cheers!
- Paul Marks
On May 2, 2007, at 12:35 AM, alepulver wrote:
>
> Hello.
>
> I have just sent this e-mail to the [EMAIL PROTECTED] mailing
> list, I hope this information is of any help to you.
>
> The mentioned patch for the FreeBSD port is here:
> http://people.freebsd.org/~alepulver/fusefs-ntfs.diff
> Or, as a .tar.gz:
> http://cvsweb.freebsd.org/ports/sysutils/fusefs-ntfs/fusefs-
> ntfs.tar.gz?tarball=1
>
> And the rest here:
> http://www.freebsd.org/cgi/cvsweb.cgi/ports/sysutils/fusefs-ntfs/
>
> The original message is below:
> --------------------
>
> Hello.
>
> I have applied the libublio patch to the current ntfs-3g and
> integrated
> with fjoe's aligned I/O layer. Before the read/write speed was about
> 2/1.2 MB/s, and now about 15/9 MB/s (of course depends on many things,
> but to illustrate the point that is drastically improves performance).
> The ni-kernel driver reads at 10MB/s, but is much faster in filesystem
> operations (listing files, find(1), etc). In addition the disk
> activity
> is a lot smoother. Also it outputs an error when creating a file
> sometimes, but can be safely ignored (just try again), I will
> investigate it (this happened before too).
>
> The reason AFAIK is the lack of cache for block devices, which was
> (re)added in FreeBSD-CURRENT (7.x). So the solution for users of
> FreeBSD 6 (and 5, but the port isn't available for that release)
> consists on using a user space cache.
>
> I tried to contact fuse4bsd/libublio author, port maintainer, and
> asked
> in freebsd-hackers@/freebsd-performance@ without response (I am not
> blaming them, perhaps they were busy, I didn't ask correctly or simply
> there was no interest about this there). I don't even know what's the
> OSVERSION value to check this.
>
> That's why I am asking for testers here. The patch to the current port
> is attached, if libublio-20070103.tar.gz can't be fetched because the
> mirrors weren't updated get it from:
> http://people.freebsd.org/~alepulver/).
>
> Without UBLIO_SYNC_IO=0 it's slower than without UBLIO, and increasing
> UBLIO_BLOCKSIZE to 1/2/4MB seems a good improvement (also the disk is
> not constantly reading/writing). Increasing UBLIO_ITEMS more than 24
> doesn't seem to increase performance.
>
> In Mac OS X the same problem exists, but cache for block devices was
> not added AFAIK so this would be interesting (currently the only
> working solution) for them.
>
> Best Regards,
> Ale
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"macfuse-devel" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/macfuse-devel?hl=en
-~----------~----~----~----~------~----~------~--~---