mirror of
https://github.com/go-kratos/kratos.git
synced 2025-03-17 21:07:54 +02:00
commit
8a0fee6cd6
@ -56,7 +56,10 @@ func (c *cgroup) CPUAcctUsagePerCPU() ([]uint64, error) {
|
||||
if u, err = parseUint(v); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
usage = append(usage, u)
|
||||
// fix possible_cpu:https://www.ibm.com/support/knowledgecenter/en/linuxonibm/com.ibm.linux.z.lgdd/lgdd_r_posscpusparm.html
|
||||
if u != 0 {
|
||||
usage = append(usage, u)
|
||||
}
|
||||
}
|
||||
return usage, nil
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
pscpu "github.com/shirou/gopsutil/cpu"
|
||||
)
|
||||
|
||||
type cgroupCPU struct {
|
||||
@ -21,12 +22,17 @@ type cgroupCPU struct {
|
||||
}
|
||||
|
||||
func newCgroupCPU() (cpu *cgroupCPU, err error) {
|
||||
cpus, err := perCPUUsage()
|
||||
if err != nil {
|
||||
err = errors.Errorf("perCPUUsage() failed!err:=%v", err)
|
||||
return
|
||||
var cores int
|
||||
cores, err = pscpu.Counts(true)
|
||||
if err != nil || cores == 0 {
|
||||
var cpus []uint64
|
||||
cpus, err = perCPUUsage()
|
||||
if err != nil {
|
||||
err = errors.Errorf("perCPUUsage() failed!err:=%v", err)
|
||||
return
|
||||
}
|
||||
cores = len(cpus)
|
||||
}
|
||||
cores := uint64(len(cpus))
|
||||
|
||||
sets, err := cpuSets()
|
||||
if err != nil {
|
||||
@ -61,7 +67,7 @@ func newCgroupCPU() (cpu *cgroupCPU, err error) {
|
||||
cpu = &cgroupCPU{
|
||||
frequency: maxFreq,
|
||||
quota: quota,
|
||||
cores: cores,
|
||||
cores: uint64(cores),
|
||||
preSystem: preSystem,
|
||||
preTotal: preTotal,
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user