summaryrefslogtreecommitdiff
path: root/edge
diff options
context:
space:
mode:
authoredge <cwl233@mail.ustc.edu.cn>2019-11-13 18:28:54 +0800
committeredge <cwl233@mail.ustc.edu.cn>2019-11-14 18:17:09 +0800
commit692f3993384899d3ba94671ca55db378c504f232 (patch)
tree1623bd5a541d282d724b1be5624e32c1b361dc69 /edge
parentMerge pull request #1253 from kadisi/testcase (diff)
downloadkubeedge-692f3993384899d3ba94671ca55db378c504f232.tar.gz
read "/proc/meminfo" to get memory status
Diffstat (limited to 'edge')
-rw-r--r--edge/pkg/edged/edged_status.go15
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 {