Hello,

I wrote two simple single-process seq read test case to compare libgfapi and fuse. The logic looks like this.

char buf[32768];
while (1) {
              cnt = read(fd, buf, sizeof(buf));
                if (cnt == 0)
                        break;
                else if (cnt > 0)
                        total += cnt;
                 // No "cnt < 0" was found during testing.
}

Following is the time which is needed to finish reading a large file.

                   fuse         libgfapi
direct io:         40s          51s
non direct io:     40s          47s

The version is 3.6.3 on centos6.5. The result shows that libgfapi is obviously slower than the fuse interface although the cpu cycles were saved a lot during libgfapi testing. Each test was run before cleaning up all kernel pageche&inode&dentry caches and stopping and then starting glusterd&gluster (to clean up gluster cache).

I tested direct io because I suspected that fuse kernel readahead
helped more than the read optimization solutions in gluster. I searched
a lot but I did not find much about the comparison between fuse and libgfapi. Anyone has known about this and known why?

Thanks,
Paul


_______________________________________________
Gluster-users mailing list
[email protected]
http://www.gluster.org/mailman/listinfo/gluster-users

Reply via email to