From fc27d210bbd664184ed029999affafa8a562dab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Fri, 29 Mar 2024 19:30:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8MMAP=E6=8F=90=E5=8D=87?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E8=AF=BB=E5=8F=96=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servers/components/cache/createPopup.go | 2 ++ .../servers/components/cache/update.go | 25 ++++++++++++++----- .../servers/components/cache/createPopup.html | 7 ++++++ .../servers/components/cache/policy.html | 7 ++++++ .../servers/components/cache/update.html | 7 ++++++ 5 files changed, 42 insertions(+), 6 deletions(-) diff --git a/internal/web/actions/default/servers/components/cache/createPopup.go b/internal/web/actions/default/servers/components/cache/createPopup.go index a9df413f..08d497de 100644 --- a/internal/web/actions/default/servers/components/cache/createPopup.go +++ b/internal/web/actions/default/servers/components/cache/createPopup.go @@ -41,6 +41,7 @@ func (this *CreatePopupAction) RunPost(params struct { MaxSizeJSON []byte FetchTimeoutJSON []byte SyncCompressionCache bool + EnableMMAP bool Description string IsOn bool @@ -97,6 +98,7 @@ func (this *CreatePopupAction) RunPost(params struct { OpenFileCache: openFileCacheConfig, EnableSendfile: params.FileEnableSendfile, MinFreeSize: minFreeSize, + EnableMMAP: params.EnableMMAP, } case serverconfigs.CachePolicyStorageMemory: options = &serverconfigs.HTTPMemoryCacheStorage{} diff --git a/internal/web/actions/default/servers/components/cache/update.go b/internal/web/actions/default/servers/components/cache/update.go index 49c51fff..e2f3238e 100644 --- a/internal/web/actions/default/servers/components/cache/update.go +++ b/internal/web/actions/default/servers/components/cache/update.go @@ -40,13 +40,23 @@ func (this *UpdateAction) RunGet(params struct { return } - // fix min free size if cachePolicy.Type == serverconfigs.CachePolicyStorageFile && cachePolicy.Options != nil { - _, ok := cachePolicy.Options["minFreeSize"] - if !ok { - cachePolicy.Options["minFreeSize"] = &shared.SizeCapacity{ - Count: 0, - Unit: shared.SizeCapacityUnitGB, + // fix min free size + { + _, ok := cachePolicy.Options["minFreeSize"] + if !ok { + cachePolicy.Options["minFreeSize"] = &shared.SizeCapacity{ + Count: 0, + Unit: shared.SizeCapacityUnitGB, + } + } + } + + // fix enableMMAP + { + _, ok := cachePolicy.Options["enableMMAP"] + if !ok { + cachePolicy.Options["enableMMAP"] = true } } } @@ -77,6 +87,8 @@ func (this *UpdateAction) RunPost(params struct { SyncCompressionCache bool FetchTimeoutJSON []byte + EnableMMAP bool + Description string IsOn bool @@ -137,6 +149,7 @@ func (this *UpdateAction) RunPost(params struct { OpenFileCache: openFileCacheConfig, EnableSendfile: params.FileEnableSendfile, MinFreeSize: minFreeSize, + EnableMMAP: params.EnableMMAP, } case serverconfigs.CachePolicyStorageMemory: options = &serverconfigs.HTTPMemoryCacheStorage{} diff --git a/web/views/@default/servers/components/cache/createPopup.html b/web/views/@default/servers/components/cache/createPopup.html index 43fa1d96..909d6491 100644 --- a/web/views/@default/servers/components/cache/createPopup.html +++ b/web/views/@default/servers/components/cache/createPopup.html @@ -70,6 +70,13 @@

缓存磁盘保留的最小空余空间,如果为0表示自动限制(目前默认保留5GiB)。

+ + 启用MMAP + + +

选中后,表示允许系统自动利用MMAP提升缓存读取性能。

+ + 缓存文件句柄缓存 diff --git a/web/views/@default/servers/components/cache/policy.html b/web/views/@default/servers/components/cache/policy.html index e47fdd0f..0074bcf9 100644 --- a/web/views/@default/servers/components/cache/policy.html +++ b/web/views/@default/servers/components/cache/policy.html @@ -46,6 +46,13 @@ 请设置一个内存容量作为缓冲区,以提升缓存写入性能。 + + 启用MMAP + + Y + N + + 缓存文件句柄缓存 {{cachePolicy.options.openFileCache.max}} diff --git a/web/views/@default/servers/components/cache/update.html b/web/views/@default/servers/components/cache/update.html index 2117cd1f..850b07f3 100644 --- a/web/views/@default/servers/components/cache/update.html +++ b/web/views/@default/servers/components/cache/update.html @@ -77,6 +77,13 @@

缓存磁盘保留的最小空余空间,如果为0表示使用默认(目前默认保留5GiB)。

+ + 启用MMAP + + +

选中后,表示允许系统自动利用MMAP提升缓存读取性能。

+ + 缓存文件句柄缓存