Thanks for benchmark. I have few questions.
Why only single disk was used for test? It is much more common to use more disk in some RAID configuration on zfs.
Did you compiled zfs-fuse manually? Was debbuging disabled?
What was zfs-fuse options? I'm using currently
and this still can be tuned.Code:DAEMON_OPTS="${DAEMON_OPTS} --fuse-attr-timeout 60.0" # caching timeout of attributes in kernel DAEMON_OPTS="${DAEMON_OPTS} --fuse-entry-timeout 60.0" # caching timeout of entries in kernel DAEMON_OPTS="${DAEMON_OPTS} --max-arc-size 1024" # maximal size of ARC in zfs-fuse DAEMON_OPTS="${DAEMON_OPTS} --vdev-cache-size 100" # maximal cache for dev blocks in zfs-fuse #DAEMON_OPTS="${DAEMON_OPTS} --disable-block-cache" # uses O_DIRECT for accesing block device, so no caching of dev blocks in kernel. seting this will disable mmap support for files #DAEMON_OPTS="${DAEMON_OPTS} --disable-page-cache" # disables caching of file pages in kernel
As of FUSE performance. On FUSE performance side main problem currently is xattr support, they are not cached on kernel side, and each read makes context switch to zfs-fus, to read them again, it kills performance. Be sure to have disabled xattrs and acls. For me it is most important problem as I really need xattrs.
Beyond that you can see that READ performance if pretty good. The write performance is much worse. What of the reason (in my option) is that locking beetweeb threads is killing it (zfs-fuse is currently using about 20 threads, and if each write request will go to random one, which isn't very good idea).
As of comparing to ext4, i also would need to ask was journal=data used? I think it should to have good comparission.
Fuse based file system CAN be fast (see at commercial version of ntfs-3g), but still zfs-fuse is not there.



Reply With Quote

