Skip to content

Commit

Permalink
Upgraded package fission to support 1MiB reads & writes
Browse files Browse the repository at this point in the history
...unfortunately reads via dd seem limited to 128KiB still... but fio, curiously, ups that to 256KiB...
  • Loading branch information
edmc-ss committed Jan 11, 2022
1 parent 7b6d395 commit 51555e8
Show file tree
Hide file tree
Showing 9 changed files with 82 additions and 11 deletions.
57 changes: 57 additions & 0 deletions benchmark.fio
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
; Job/Section Selection: --section={1MiB_write|1MiB_read|4KiB_write|4KiB_read}
; Number of Threads: --numjobs=<N> (defaults to 1)
;
; Suggested sequence:
;
; Startup file server
; Mount file system
; Erase all files in file system
; Unmount file system
; Restart file server
; Remount file system
; fio --section=1MiB_write --numjobs=<N> benchmark.fio
; Record results
; Unmount file system
; Restart file server
; Remount file system
; fio --section=1MiB_read --numjobs=<N> benchmark.fio
; Record results
; Erase all files in file system
; Unmount file system
; Restart file server
; Remount file system
; fio --section=4KiB_write --numjobs=<N> benchmark.fio
; Record results
; Unmount file system
; Restart file server
; Remount file system
; fio --section=4KiB_read --numjobs=<N> benchmark.fio
; Record results
; Erase all files in file system
; Unmount file system
; Stop file server

[global]
directory=/mnt
end_fsync=1
filename_format=fio.$jobnum.$filenum
group_reporting
iodepth=1
ioengine=psync
size=4Gi

[1MiB_write]
blocksize=1Mi
readwrite=write

[1MiB_read]
blocksize=1Mi
readwrite=read

[4KiB_write]
blocksize=4Ki
readwrite=write

[4KiB_read]
blocksize=4Ki
readwrite=read
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module github.com/NVIDIA/proxyfs
go 1.17

require (
github.com/NVIDIA/fission v0.0.0-20211223045359-ebc0c4203e7b
github.com/NVIDIA/fission v0.0.0-20220110231326-e35d84a12929
github.com/NVIDIA/sortedmap v0.0.0-20210902154213-c8c741ed94c5
github.com/google/btree v1.0.1
github.com/sirupsen/logrus v1.8.1
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
github.com/NVIDIA/cstruct v0.0.0-20210817223100-441a06a021c8 h1:hMAAyAeYB1T1DnxqdDZzjWeTDz/hL0ZGFhz3uQyH1nQ=
github.com/NVIDIA/cstruct v0.0.0-20210817223100-441a06a021c8/go.mod h1:GPbuJvLD4QWiHPS6vivLzh+XMAx6va0Aucm6ipa5S0I=
github.com/NVIDIA/fission v0.0.0-20211223045359-ebc0c4203e7b h1:Jhps18HvZUrJKJR2E57rF5Kp/7chK6NDo/wZnD0gtF0=
github.com/NVIDIA/fission v0.0.0-20211223045359-ebc0c4203e7b/go.mod h1:9wVslsyxZaBvW/ollg7JLxJOxKb+Ik2KH1WVs1nicMA=
github.com/NVIDIA/fission v0.0.0-20220110231326-e35d84a12929 h1:iFIrEXsx1JGcepyqoMPo9IHqMFbe799HAOpxVeykQks=
github.com/NVIDIA/fission v0.0.0-20220110231326-e35d84a12929/go.mod h1:9wVslsyxZaBvW/ollg7JLxJOxKb+Ik2KH1WVs1nicMA=
github.com/NVIDIA/sortedmap v0.0.0-20210902154213-c8c741ed94c5 h1:mDx/maO8psu+pHQqEDoL15WTj/BAAnu/sKSeOVR8wZI=
github.com/NVIDIA/sortedmap v0.0.0-20210902154213-c8c741ed94c5/go.mod h1:YtiQTabdmrFxECTKRqpuY/sXCKXOvaEc8plI2zYFb+k=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand Down
5 changes: 3 additions & 2 deletions iclient/dev.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ FUSEBlockSize: 512
FUSEAllowOther: true
FUSEMaxBackground: 1000
FUSECongestionThreshhold: 0
FUSEMaxRead: 131076
FUSEMaxWrite: 131076
FUSEMaxPages: 256
FUSEMaxRead: 1048576
FUSEMaxWrite: 1048576
FUSEEntryValidDuration: 250ms
FUSEAttrValidDuration: 250ms
AuthPlugInPath: iauth/iauth-swift/iauth-swift.so
Expand Down
5 changes: 3 additions & 2 deletions iclient/iclient.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ FUSEBlockSize: 512
FUSEAllowOther: true
FUSEMaxBackground: 1000
FUSECongestionThreshhold: 0
FUSEMaxRead: 131076
FUSEMaxWrite: 131076
FUSEMaxPages: 256
FUSEMaxRead: 1048576
FUSEMaxWrite: 1048576
FUSEEntryValidDuration: 250ms
FUSEAttrValidDuration: 250ms
AuthPlugInPath: iauth-swift.so
Expand Down
5 changes: 3 additions & 2 deletions iclient/iclientpkg/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@
// FUSEAllowOther: true
// FUSEMaxBackground: 1000
// FUSECongestionThreshhold: 0
// FUSEMaxRead: 131076
// FUSEMaxWrite: 131076
// FUSEMaxPages: 256
// FUSEMaxRead: 1048576 # 1MiB == FUSEMaxPages(256) * 4KiB
// FUSEMaxWrite: 1048576 # 1MiB == FUSEMaxPages(256) * 4KiB
// FUSEEntryValidDuration: 250ms
// FUSEAttrValidDuration: 250ms
// AuthPlugInPath: iauth-swift.so
Expand Down
4 changes: 4 additions & 0 deletions iclient/iclientpkg/fission.go
Original file line number Diff line number Diff line change
Expand Up @@ -2774,6 +2774,10 @@ func (dummy *globalsStruct) DoInit(inHeader *fission.InHeader, initIn *fission.I
MaxBackground: globals.config.FUSEMaxBackground,
CongestionThreshhold: globals.config.FUSECongestionThreshhold,
MaxWrite: globals.config.FUSEMaxWrite,
TimeGran: 0, // accept default
MaxPages: globals.config.FUSEMaxPages,
Padding: 0,
Unused: [8]uint32{0, 0, 0, 0, 0, 0, 0, 0},
}

errno = 0
Expand Down
6 changes: 6 additions & 0 deletions iclient/iclientpkg/globals.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ type configStruct struct {
FUSEAllowOther bool
FUSEMaxBackground uint16
FUSECongestionThreshhold uint16
FUSEMaxPages uint16
FUSEMaxRead uint32
FUSEMaxWrite uint32
FUSEEntryValidDuration time.Duration
Expand Down Expand Up @@ -315,6 +316,10 @@ func initializeGlobals(confMap conf.ConfMap, fissionErrChan chan error) (err err
if nil != err {
logFatal(err)
}
globals.config.FUSEMaxPages, err = confMap.FetchOptionValueUint16("ICLIENT", "FUSEMaxPages")
if nil != err {
logFatal(err)
}
globals.config.FUSEMaxRead, err = confMap.FetchOptionValueUint32("ICLIENT", "FUSEMaxRead")
if nil != err {
logFatal(err)
Expand Down Expand Up @@ -550,6 +555,7 @@ func uninitializeGlobals() (err error) {
globals.config.FUSEAllowOther = false
globals.config.FUSEMaxBackground = 0
globals.config.FUSECongestionThreshhold = 0
globals.config.FUSEMaxPages = 0
globals.config.FUSEMaxRead = 0
globals.config.FUSEMaxWrite = 0
globals.config.FUSEEntryValidDuration = time.Duration(0)
Expand Down
5 changes: 3 additions & 2 deletions iclient/iclientpkg/utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,9 @@ func testSetup(t *testing.T) {
"ICLIENT.FUSEAllowOther=true",
"ICLIENT.FUSEMaxBackground=1000",
"ICLIENT.FUSECongestionThreshhold=0",
"ICLIENT.FUSEMaxRead=131076",
"ICLIENT.FUSEMaxWrite=131076",
"ICLIENT.FUSEMaxPages=256",
"ICLIENT.FUSEMaxRead=1048576",
"ICLIENT.FUSEMaxWrite=1048576",
"ICLIENT.FUSEEntryValidDuration=250ms",
"ICLIENT.FUSEAttrValidDuration=250ms",
"ICLIENT.AuthPlugInPath=../../iauth/iauth-swift/iauth-swift.so",
Expand Down

0 comments on commit 51555e8

Please sign in to comment.