mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-10 04:20:27 +08:00
限制内存缓存最大容量为系统内存的三分之一
This commit is contained in:
@@ -584,13 +584,19 @@ func (this *MemoryStorage) flushItem(key string) {
|
||||
}
|
||||
|
||||
func (this *MemoryStorage) memoryCapacityBytes() int64 {
|
||||
var maxSystemBytes = int64(utils.SystemMemoryBytes()) / 3 // 1/3 of the system memory
|
||||
|
||||
if this.policy == nil {
|
||||
return 0
|
||||
return maxSystemBytes
|
||||
}
|
||||
|
||||
if SharedManager.MaxMemoryCapacity != nil {
|
||||
var capacityBytes = SharedManager.MaxMemoryCapacity.Bytes()
|
||||
if capacityBytes > 0 {
|
||||
if capacityBytes > maxSystemBytes {
|
||||
return maxSystemBytes
|
||||
}
|
||||
|
||||
return capacityBytes
|
||||
}
|
||||
}
|
||||
@@ -599,17 +605,15 @@ func (this *MemoryStorage) memoryCapacityBytes() int64 {
|
||||
if capacity != nil {
|
||||
var capacityBytes = capacity.Bytes()
|
||||
if capacityBytes > 0 {
|
||||
if capacityBytes > maxSystemBytes {
|
||||
return maxSystemBytes
|
||||
}
|
||||
return capacityBytes
|
||||
}
|
||||
}
|
||||
|
||||
// half of the system memory
|
||||
var memoryGB = utils.SystemMemoryGB()
|
||||
if memoryGB < 1 {
|
||||
memoryGB = 1
|
||||
}
|
||||
|
||||
return int64(memoryGB) << 30 / 2
|
||||
// 1/4 of the system memory
|
||||
return maxSystemBytes
|
||||
}
|
||||
|
||||
func (this *MemoryStorage) deleteWithoutLocker(key string) error {
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
)
|
||||
|
||||
var systemTotalMemory = -1
|
||||
var systemMemoryBytes uint64
|
||||
|
||||
func init() {
|
||||
if !teaconst.IsMain {
|
||||
@@ -29,6 +30,8 @@ func SystemMemoryGB() int {
|
||||
return 1
|
||||
}
|
||||
|
||||
systemMemoryBytes = stat.Total
|
||||
|
||||
systemTotalMemory = int(stat.Total / (1 << 30))
|
||||
if systemTotalMemory <= 0 {
|
||||
systemTotalMemory = 1
|
||||
@@ -38,3 +41,8 @@ func SystemMemoryGB() int {
|
||||
|
||||
return systemTotalMemory
|
||||
}
|
||||
|
||||
// SystemMemoryBytes 系统内存总字节数
|
||||
func SystemMemoryBytes() uint64 {
|
||||
return systemMemoryBytes
|
||||
}
|
||||
|
||||
@@ -8,4 +8,7 @@ func TestSystemMemoryGB(t *testing.T) {
|
||||
t.Log(SystemMemoryGB())
|
||||
t.Log(SystemMemoryGB())
|
||||
t.Log(SystemMemoryGB())
|
||||
t.Log(SystemMemoryBytes())
|
||||
t.Log(SystemMemoryBytes())
|
||||
t.Log(SystemMemoryBytes()>>30, "GB")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user