diff options
| author | edge <cwl233@mail.ustc.edu.cn> | 2019-11-13 18:28:54 +0800 |
|---|---|---|
| committer | edge <cwl233@mail.ustc.edu.cn> | 2019-11-14 18:17:09 +0800 |
| commit | 692f3993384899d3ba94671ca55db378c504f232 (patch) | |
| tree | 1623bd5a541d282d724b1be5624e32c1b361dc69 /edge | |
| parent | Merge pull request #1253 from kadisi/testcase (diff) | |
| download | kubeedge-692f3993384899d3ba94671ca55db378c504f232.tar.gz | |
read "/proc/meminfo" to get memory status
Diffstat (limited to 'edge')
| -rw-r--r-- | edge/pkg/edged/edged_status.go | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/edge/pkg/edged/edged_status.go b/edge/pkg/edged/edged_status.go index 658f0b37d..74c5c3731 100644 --- a/edge/pkg/edged/edged_status.go +++ b/edge/pkg/edged/edged_status.go @@ -24,10 +24,12 @@ package edged import ( "fmt" + "io/ioutil" "net" "os" "regexp" "runtime" + "strconv" "strings" "time" @@ -323,11 +325,20 @@ func (e *edged) getIP() (string, error) { } func (e *edged) setMemInfo(total, allocated v1.ResourceList) error { - totalMem, err := util.Command("/bin/sh", []string{"-c", `free -m | grep Mem | awk '{print$2}'`}) + out, err := ioutil.ReadFile("/proc/meminfo") if err != nil { return err } - mem := resource.MustParse(totalMem + "Mi") + matches := regexp.MustCompile(`MemTotal:\s*([0-9]+) kB`).FindSubmatch(out) + if len(matches) != 2 { + return fmt.Errorf("failed to match regexp in output: %q", string(out)) + } + m, err := strconv.ParseInt(string(matches[1]), 10, 64) + if err != nil { + return err + } + totalMem := m / 1024 + mem := resource.MustParse(strconv.FormatInt(totalMem, 10) + "Mi") total[v1.ResourceMemory] = mem.DeepCopy() if mem.Cmp(reservationMemory) > 0 { |
