mirror of
https://gitee.com/samwaf/SamWaf.git
synced 2026-10-31 02:01:44 +08:00
@@ -19,4 +19,5 @@ const (
|
||||
TASK_CLEAR_CC_WINDOWS = "task_clear_cc_windows" //清除ccWindows记录
|
||||
TASK_CREATE_DB_INDEX = "task_create_db_index" //创建索引
|
||||
TASK_CLEAR_WEBCACHE = "task_clear_webcache" //清除缓存
|
||||
TASK_GC = "task_gc" //GC回收
|
||||
)
|
||||
|
||||
@@ -331,6 +331,8 @@ func (m *wafSystenService) run() {
|
||||
globalobj.GWAF_RUNTIME_OBJ_WAF_TaskRegistry.RegisterTask(enums.TASK_CLEAR_CC_WINDOWS, waftask.TaskCC)
|
||||
globalobj.GWAF_RUNTIME_OBJ_WAF_TaskRegistry.RegisterTask(enums.TASK_CREATE_DB_INDEX, waftask.TaskCreateIndex)
|
||||
globalobj.GWAF_RUNTIME_OBJ_WAF_TaskRegistry.RegisterTask(enums.TASK_CLEAR_WEBCACHE, waftask.TaskClearWebcache)
|
||||
globalobj.GWAF_RUNTIME_OBJ_WAF_TaskRegistry.RegisterTask(enums.TASK_GC, waftask.TaskGC)
|
||||
|
||||
go waftask.TaskShareDbInfo()
|
||||
|
||||
globalobj.GWAF_RUNTIME_OBJ_WAF_TaskScheduler = waftask.NewTaskScheduler(globalobj.GWAF_RUNTIME_OBJ_WAF_TaskRegistry)
|
||||
|
||||
@@ -98,6 +98,13 @@ func InitTaskDb() []model.Task {
|
||||
TaskMethod: enums.TASK_DELETE_HISTORY_INFO,
|
||||
})
|
||||
|
||||
syncTaskToDb(model.Task{
|
||||
TaskName: "每天01:00进行GC回收",
|
||||
TaskUnit: enums.TASK_DAY,
|
||||
TaskValue: 1,
|
||||
TaskAt: "01:00",
|
||||
TaskMethod: enums.TASK_GC,
|
||||
})
|
||||
syncTaskToDb(model.Task{
|
||||
TaskName: "每天02:13进行SSL证书申请",
|
||||
TaskUnit: enums.TASK_DAY,
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package waftask
|
||||
|
||||
import (
|
||||
"SamWaf/common/zlog"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
func TaskGC() {
|
||||
innerLogName := "TaskGC"
|
||||
|
||||
// 获取GC前的内存统计
|
||||
var m1, m2 runtime.MemStats
|
||||
runtime.ReadMemStats(&m1)
|
||||
|
||||
zlog.Info(innerLogName, "准备进行GC回收",
|
||||
"GC前内存使用", m1.Alloc/1024/1024, "MB",
|
||||
"GC前堆内存", m1.HeapAlloc/1024/1024, "MB",
|
||||
"GC前系统内存", m1.Sys/1024/1024, "MB",
|
||||
"GC次数", m1.NumGC)
|
||||
|
||||
// 执行GC
|
||||
runtime.GC()
|
||||
|
||||
// 获取GC后的内存统计
|
||||
runtime.ReadMemStats(&m2)
|
||||
|
||||
// 计算内存释放量
|
||||
memFreed := int64(m1.Alloc) - int64(m2.Alloc)
|
||||
heapFreed := int64(m1.HeapAlloc) - int64(m2.HeapAlloc)
|
||||
|
||||
zlog.Info(innerLogName, "GC回收完成",
|
||||
"GC后内存使用", m2.Alloc/1024/1024, "MB",
|
||||
"GC后堆内存", m2.HeapAlloc/1024/1024, "MB",
|
||||
"GC后系统内存", m2.Sys/1024/1024, "MB",
|
||||
"GC次数", m2.NumGC,
|
||||
"释放内存", memFreed/1024/1024, "MB",
|
||||
"释放堆内存", heapFreed/1024/1024, "MB",
|
||||
"GC耗时", m2.PauseTotalNs-m1.PauseTotalNs, "ns")
|
||||
}
|
||||
Reference in New Issue
Block a user