[Gluster-users] seq read performance comparion between libgfapi and	fuse
    Paul Guo 
    bigpaulguo at foxmail.com
       
    Fri May 22 10:50:40 UTC 2015
    
    
  
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
    
    
More information about the Gluster-users
mailing list