mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-29 08:20:42 +01:00
* mount: expose `-fuse.maxBackground` flag (closes #9258) The Linux FUSE driver caps in-flight async requests via `/sys/fs/fuse/connections/<id>/max_background` (and a derived `congestion_threshold = 3/4 * max_background`). Heavy upload workloads need this raised, but the cap currently lives only in `/sys`, so it resets on reboot/remount. `weed mount` was hardcoding `MaxBackground: 128`. Promote it to a flag, default unchanged. Setting `-fuse.maxBackground=2048` reproduces the manual `echo 2048 > .../max_background` (and gives 1536 for congestion_threshold automatically) persistently across remounts. `congestion_threshold` is not exposed as a separate flag because go-fuse derives it as 3/4 of MaxBackground in InitOut and offers no hook to override; users wanting a different ratio can still write /sys/fs/fuse/connections/<id>/congestion_threshold post-mount. * mount: add `-fuse.congestionThreshold` flag, bump go-fuse to v2.9.3 go-fuse v2.9.3 exposes CongestionThreshold as a separate MountOption, so we can now let users override the kernel's default 3/4-of-max_background ratio at mount time instead of having to write /sys/fs/fuse/connections/<id>/congestion_threshold post-mount on every remount/reboot. Default 0 preserves existing behavior (kernel derives it as 3/4 * max_background). Non-zero is sent to the kernel verbatim; the kernel clamps it to max_background if higher.
This commit is contained in:
1 parent
08d59750ef
commit
735e94f6ba
4 files changed
+21
-5
No files matched your search
@@ -242,11 +242,21 @@ func RunMount(option *MountOptions, umask os.FileMode) bool {
|
||||
fsName = "fuse"
|
||||
}
|
||||
|
||||
maxBackground := 128
|
||||
if option.fuseMaxBackground != nil && *option.fuseMaxBackground > 0 {
|
||||
maxBackground = *option.fuseMaxBackground
|
||||
}
|
||||
congestionThreshold := 0
|
||||
if option.fuseCongestionThreshold != nil && *option.fuseCongestionThreshold > 0 {
|
||||
congestionThreshold = *option.fuseCongestionThreshold
|
||||
}
|
||||
|
||||
// mount fuse
|
||||
fuseMountOptions := &fuse.MountOptions{
|
||||
AllowOther: *option.allowOthers,
|
||||
Options: option.extraOptions,
|
||||
MaxBackground: 128,
|
||||
MaxBackground: maxBackground,
|
||||
CongestionThreshold: congestionThreshold,
|
||||
MaxWrite: 1024 * 1024 * 2,
|
||||
MaxReadAhead: 1024 * 1024 * 2,
|
||||
IgnoreSecurityLabels: false,
|
||||
|
||||
Reference in new issue
Block a user