mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-20 13:04:25 +02:00
mount: raise the listing cache default to a million children
A ceiling rather than a reservation: nothing is held for a directory never walked, so this only materialises for a mount that really does walk that many cached children, and one that does wants the speedup. A chunkless child measured about 480 bytes, so the doc and the flag help both say what reaching the ceiling costs -- near 450MB -- since that is the number an operator needs to lower it against.
This commit is contained in:
1 parent
55d6f46009
commit
819a39c1f6
2 files changed
+9
-4
No files matched your search
@@ -117,7 +117,7 @@ func init() {
|
||||
mountOptions.cacheDirForWrite = cmdMount.Flag.String("cacheDirWrite", "", "buffer writes mostly for large files")
|
||||
mountOptions.writeBufferSizeMB = cmdMount.Flag.Int64("writeBufferSizeMB", 0, "global cap on the per-mount write buffer (memory + swap) in MB, 0 means unlimited. Bounds /tmp growth when volume uploads stall")
|
||||
mountOptions.cacheMetaTtlSec = cmdMount.Flag.Int("cacheMetaTtlSec", 60, "metadata cache validity seconds")
|
||||
mountOptions.dirListCacheEntries = cmdMount.Flag.Int("dirListCacheEntries", meta_cache.DefaultListingCacheEntries, "directory children kept decoded in memory, so reopening a folder rereads nothing; 0 disables")
|
||||
mountOptions.dirListCacheEntries = cmdMount.Flag.Int("dirListCacheEntries", meta_cache.DefaultListingCacheEntries, "directory children kept decoded in memory, so reopening a folder rereads nothing. A ceiling, not a reservation: only walked directories are held, at roughly half a kilobyte per child. 0 disables")
|
||||
mountOptions.dataCenter = cmdMount.Flag.String("dataCenter", "", "prefer to write to the data center")
|
||||
mountOptions.allowOthers = cmdMount.Flag.Bool("allowOthers", true, "allows other users to access the file system")
|
||||
mountOptions.defaultPermissions = cmdMount.Flag.Bool("defaultPermissions", true, "enforce permissions by the operating system")
|
||||
|
||||
@@ -9,9 +9,14 @@ import (
|
||||
)
|
||||
|
||||
// DefaultListingCacheEntries is how many directory children the mount will hold
|
||||
// decoded in memory across every cached listing. A chunkless entry runs a few
|
||||
// hundred bytes, so this is tens of megabytes.
|
||||
const DefaultListingCacheEntries = 200000
|
||||
// decoded in memory across every cached listing.
|
||||
//
|
||||
// This is a ceiling, not a reservation: nothing is held for a directory that was
|
||||
// never walked, so a mount over ordinary directories never approaches it. A
|
||||
// chunkless child measured about 480 bytes, so reaching the default means
|
||||
// holding something near 450MB, and a mount that wants a tighter bound should
|
||||
// lower it rather than rely on never walking that far.
|
||||
const DefaultListingCacheEntries = 1000000
|
||||
|
||||
// listingCache keeps directories that have been walked all the way through, so
|
||||
// walking one again costs no store reads and no decoding. It holds only what the
|
||||
|
||||
Reference in new issue
Block a user