MCPcopy Create free account
hub / github.com/GoEdgeLab/EdgeNode / init

Function init

internal/utils/fs/status.go:51–95  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

49)
50
51func init() {
52 if !teaconst.IsMain {
53 return
54 }
55
56 // test disk
57 goman.New(func() {
58 // load last result from local disk
59 cacheData, cacheErr := os.ReadFile(Tea.Root + "/data/" + diskSpeedDataFile)
60 if cacheErr == nil {
61 var cache = &DiskSpeedCache{}
62 err := json.Unmarshal(cacheData, cache)
63 if err == nil && cache.SpeedMB > 0 {
64 DiskSpeedMB = cache.SpeedMB
65 DiskSpeed = cache.Speed
66 }
67 }
68
69 // initial check
70 _, _, _ = CheckDiskIsFast()
71
72 // check every one hour
73 var ticker = time.NewTicker(1 * time.Hour)
74 var count = 0
75 for range ticker.C {
76 _, _, err := CheckDiskIsFast()
77 if err == nil {
78 count++
79 if count > 24 {
80 return
81 }
82 }
83 }
84 })
85
86 // check high load
87 goman.New(func() {
88 var ticker = time.NewTicker(5 * time.Second)
89 for range ticker.C {
90 stat, _ := load.Avg()
91 IsInExtremelyHighLoad = stat != nil && stat.Load1 > extremelyHighLoad1Threshold
92 IsInHighLoad = stat != nil && stat.Load1 > highLoad1Threshold && !DiskIsFast()
93 }
94 })
95}
96
97func DiskIsFast() bool {
98 return DiskSpeed == SpeedExtremelyFast || DiskSpeed == SpeedFast

Callers 1

OpenFSFunction · 0.92

Calls 3

NewFunction · 0.92
CheckDiskIsFastFunction · 0.85
DiskIsFastFunction · 0.85

Tested by

no test coverage detected