load_linux.go 653 字节
Newer Older
W
WAKAYAMA Shirou 已提交
1 2
// +build linux

3
package gopsutil
W
WAKAYAMA Shirou 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

import (
	"io/ioutil"
	"strconv"
	"strings"
)

func (l Load) LoadAvg() (LoadAvg, error) {
	filename := "/proc/loadavg"
	line, err := ioutil.ReadFile(filename)
	if err != nil {
		return LoadAvg{}, err
	}

	values := strings.Fields(string(line))

	load1, err := strconv.ParseFloat(values[0], 64)
	if err != nil {
		return LoadAvg{}, err
	}
	load5, err := strconv.ParseFloat(values[1], 64)
	if err != nil {
		return LoadAvg{}, err
	}
	load15, err := strconv.ParseFloat(values[2], 64)
	if err != nil {
		return LoadAvg{}, err
	}

	ret := LoadAvg{
		Load1:  load1,
		Load5:  load5,
		Load15: load15,
	}

	return ret, nil
}