mirror of
https://github.com/cubefs/cubefs.git
synced 2026-08-02 02:00:56 +00:00
fix(util): check if err occurred when get CPU percent, to avoid panic if got nil result.
Signed-off-by: true1064 <tangjingyu@oppo.com>
This commit is contained in:
parent
c8e92fb0f0
commit
2a8be30f01
@ -865,8 +865,10 @@ func (s *DataNode) startCpuSample() {
|
||||
return
|
||||
default:
|
||||
// this function will sleep cpuSampleDuration
|
||||
used := loadutil.GetCpuUtilPercent(cpuSampleDuration)
|
||||
s.cpuUtil.Store(used)
|
||||
used, err := loadutil.GetCpuUtilPercent(cpuSampleDuration)
|
||||
if err == nil {
|
||||
s.cpuUtil.Store(used)
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
@ -331,8 +331,10 @@ func (m *metadataManager) startCpuSample() {
|
||||
case <-m.stopC:
|
||||
return
|
||||
default:
|
||||
used := loadutil.GetCpuUtilPercent(sampleDuration)
|
||||
m.cpuUtil.Store(used)
|
||||
used, err := loadutil.GetCpuUtilPercent(sampleDuration)
|
||||
if err == nil {
|
||||
m.cpuUtil.Store(used)
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
@ -15,12 +15,30 @@
|
||||
package loadutil
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/cubefs/cubefs/util/log"
|
||||
"time"
|
||||
|
||||
"github.com/shirou/gopsutil/cpu"
|
||||
)
|
||||
|
||||
func GetCpuUtilPercent(sampleDuration time.Duration) float64 {
|
||||
utils, _ := cpu.Percent(sampleDuration, false)
|
||||
return utils[0]
|
||||
func GetCpuUtilPercent(sampleDuration time.Duration) (used float64, err error) {
|
||||
utils, err := cpu.Percent(sampleDuration, false)
|
||||
if err != nil {
|
||||
log.LogErrorf("[GetCpuUtilPercent] err: %v", err.Error())
|
||||
return
|
||||
}
|
||||
if utils == nil {
|
||||
err = fmt.Errorf("got nil result")
|
||||
log.LogErrorf("[GetCpuUtilPercent] err: %v", err.Error())
|
||||
return
|
||||
}
|
||||
if len(utils) == 0 {
|
||||
err = fmt.Errorf("got result len is 0")
|
||||
log.LogErrorf("[GetCpuUtilPercent] err: %v", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
used = utils[0]
|
||||
return
|
||||
}
|
||||
|
||||
@ -22,6 +22,6 @@ import (
|
||||
)
|
||||
|
||||
func TestCpuUtil(t *testing.T) {
|
||||
used := loadutil.GetCpuUtilPercent(time.Second)
|
||||
used, _ := loadutil.GetCpuUtilPercent(time.Second)
|
||||
t.Logf("CPU Util: %v\n", used)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user