aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2021-12-28 12:22:56 -0800
committerchrislu <chris.lu@gmail.com>2021-12-28 12:22:56 -0800
commit0da2dfd640a3d915cbfbd9ecf10ebaee895855a3 (patch)
tree28d1b6de11aa5323d638f30113643eb2e532670a
parent3fd4da34a4070371c43e18ac45b568cdb94a520e (diff)
downloadseaweedfs-0da2dfd640a3d915cbfbd9ecf10ebaee895855a3.tar.xz
seaweedfs-0da2dfd640a3d915cbfbd9ecf10ebaee895855a3.zip
fuse: change to direct io mode
before and after: chrislu$ time dd if=/dev/random of=/Users/chrislu/tmp/mm/testfile bs=131072 count=8192 8192+0 records in 8192+0 records out 1073741824 bytes transferred in 4.534068 secs (236816430 bytes/sec) dd if=/dev/random of=/Users/chrislu/tmp/mm/testfile bs=131072 count=8192 0.01s user 3.86s system 84% cpu 4.561 total chrislu$ time dd if=/dev/random of=/Users/chrislu/tmp/mm/testfile bs=131072 count=8192 8192+0 records in 8192+0 records out 1073741824 bytes transferred in 3.824072 secs (280784948 bytes/sec) dd if=/dev/random of=/Users/chrislu/tmp/mm/testfile bs=131072 count=8192 0.01s user 3.22s system 83% cpu 3.857 total
-rw-r--r--weed/command/mount_std.go2
-rw-r--r--weed/filesys/file.go1
2 files changed, 2 insertions, 1 deletions
diff --git a/weed/command/mount_std.go b/weed/command/mount_std.go
index ce9a998f6..8514f18af 100644
--- a/weed/command/mount_std.go
+++ b/weed/command/mount_std.go
@@ -175,7 +175,7 @@ func RunMount(option *MountOptions, umask os.FileMode) bool {
fuse.DefaultPermissions(),
fuse.MaxReadahead(1024 * 128),
fuse.AsyncRead(),
- fuse.WritebackCache(),
+ // fuse.WritebackCache(),
fuse.MaxBackground(128),
fuse.CongestionThreshold(128),
}
diff --git a/weed/filesys/file.go b/weed/filesys/file.go
index bbc5c8e21..6cf52ba60 100644
--- a/weed/filesys/file.go
+++ b/weed/filesys/file.go
@@ -96,6 +96,7 @@ func (file *File) Getxattr(ctx context.Context, req *fuse.GetxattrRequest, resp
func (file *File) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error) {
glog.V(4).Infof("file %v open %+v", file.fullpath(), req)
+ resp.Flags |= fuse.OpenDirectIO
handle := file.wfs.AcquireHandle(file, req.Uid, req.Gid)