github.com/wrgl/wrgl@v0.14.0/pkg/mem/mem_linux.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright © 2022 Wrangle Ltd 3 4 package mem 5 6 import ( 7 "os/exec" 8 "strconv" 9 "strings" 10 ) 11 12 func GetTotalMem() (uint64, error) { 13 out, err := exec.Command("awk", "/MemTotal/ {print $2}", "/proc/meminfo").Output() 14 if err != nil { 15 return 0, err 16 } 17 u, err := strconv.ParseUint(strings.Trim(string(out), " \n"), 10, 64) 18 if err != nil { 19 return 0, err 20 } 21 return u * 1024, nil 22 } 23 24 func GetAvailMem() (uint64, error) { 25 out, err := exec.Command("awk", "/MemFree/ {print $2}", "/proc/meminfo").Output() 26 if err != nil { 27 return 0, err 28 } 29 u, err := strconv.ParseUint(strings.Trim(string(out), " \n"), 10, 64) 30 if err != nil { 31 return 0, err 32 } 33 return u * 1024, nil 34 }