mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-07 18:50:26 +08:00
系统内存不足时,尝试自动回收内存
This commit is contained in:
@@ -6,6 +6,8 @@ import (
|
|||||||
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
||||||
"github.com/shirou/gopsutil/v3/load"
|
"github.com/shirou/gopsutil/v3/load"
|
||||||
"github.com/shirou/gopsutil/v3/mem"
|
"github.com/shirou/gopsutil/v3/mem"
|
||||||
|
"runtime"
|
||||||
|
"runtime/debug"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 更新内存
|
// 更新内存
|
||||||
@@ -22,6 +24,18 @@ func (this *NodeStatusExecutor) updateMem(status *nodeconfigs.NodeStatus) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
status.MemoryTotal = stat.Total
|
status.MemoryTotal = stat.Total
|
||||||
|
|
||||||
|
// 内存严重不足时自动释放内存
|
||||||
|
if stat.Total > 0 {
|
||||||
|
var minFreeMemory = stat.Total / 8
|
||||||
|
if minFreeMemory > 1<<30 {
|
||||||
|
minFreeMemory = 1 << 30
|
||||||
|
}
|
||||||
|
if stat.Free < minFreeMemory {
|
||||||
|
runtime.GC()
|
||||||
|
debug.FreeOSMemory()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新负载
|
// 更新负载
|
||||||
|
|||||||
Reference in New Issue
Block a user