使用MMAP提升缓存读取性能

This commit is contained in:
刘祥超
2024-03-29 19:30:12 +08:00
parent 49da63c146
commit fc27d210bb
5 changed files with 42 additions and 6 deletions

View File

@@ -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{}

View File

@@ -40,8 +40,9 @@ func (this *UpdateAction) RunGet(params struct {
return
}
// fix min free size
if cachePolicy.Type == serverconfigs.CachePolicyStorageFile && cachePolicy.Options != nil {
// fix min free size
{
_, ok := cachePolicy.Options["minFreeSize"]
if !ok {
cachePolicy.Options["minFreeSize"] = &shared.SizeCapacity{
@@ -51,6 +52,15 @@ func (this *UpdateAction) RunGet(params struct {
}
}
// fix enableMMAP
{
_, ok := cachePolicy.Options["enableMMAP"]
if !ok {
cachePolicy.Options["enableMMAP"] = true
}
}
}
this.Data["cachePolicy"] = cachePolicy
// 其他选项
@@ -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{}

View File

@@ -70,6 +70,13 @@
<p class="comment">缓存磁盘保留的最小空余空间如果为0表示自动限制目前默认保留5GiB</p>
</td>
</tr>
<tr v-show="moreOptionsVisible && policyType == 'file' && teaIsPlus">
<td class="color-border">启用MMAP</td>
<td>
<checkbox name="enableMMAP" checked="checked"></checkbox>
<p class="comment">选中后表示允许系统自动利用MMAP提升缓存读取性能。</p>
</td>
</tr>
<tr>
<td class="color-border">缓存文件句柄缓存</td>
<td>

View File

@@ -46,6 +46,13 @@
<a :href="Tea.url('.update', {cachePolicyId:cachePolicy.id})"><span class="red">请设置一个内存容量作为缓冲区,以提升缓存写入性能。</span></a>
</td>
</tr>
<tr v-if="cachePolicy.options != null && teaIsPlus">
<td class="color-border">启用MMAP</td>
<td>
<span class="green" v-if="cachePolicy.options.enableMMAP || cachePolicy.options.enableMMAP == null">Y</span>
<span class="disabled" v-else>N</span>
</td>
</tr>
<tr v-if="cachePolicy.options.openFileCache != null && cachePolicy.options.openFileCache.isOn && cachePolicy.options.openFileCache.max > 0">
<td class="color-border">缓存文件句柄缓存</td>
<td>{{cachePolicy.options.openFileCache.max}}</td>

View File

@@ -77,6 +77,13 @@
<p class="comment">缓存磁盘保留的最小空余空间如果为0表示使用默认目前默认保留5GiB</p>
</td>
</tr>
<tr v-show="teaIsPlus">
<td class="color-border">启用MMAP</td>
<td>
<checkbox name="enableMMAP" v-model="cachePolicy.options.enableMMAP"></checkbox>
<p class="comment">选中后表示允许系统自动利用MMAP提升缓存读取性能。</p>
</td>
</tr>
<tr>
<td class="color-border">缓存文件句柄缓存</td>
<td>