gopsutil: Index | Files

package cpu

import ""


Package Files

cpu.go cpu_linux.go


var ClocksPerSec = float64(100)

func Counts Uses

func Counts(logical bool) (int, error)

Counts returns the number of physical or logical cores in the system

func CountsWithContext Uses

func CountsWithContext(ctx context.Context, logical bool) (int, error)

func Percent Uses

func Percent(interval time.Duration, percpu bool) ([]float64, error)

Percent calculates the percentage of cpu used either per CPU or combined. If an interval of 0 is given it will compare the current cpu times against the last call. Returns one value per cpu, or a single value if percpu is set to false.

func PercentWithContext Uses

func PercentWithContext(ctx context.Context, interval time.Duration, percpu bool) ([]float64, error)

type InfoStat Uses

type InfoStat struct {
    CPU        int32    `json:"cpu"`
    VendorID   string   `json:"vendorId"`
    Family     string   `json:"family"`
    Model      string   `json:"model"`
    Stepping   int32    `json:"stepping"`
    PhysicalID string   `json:"physicalId"`
    CoreID     string   `json:"coreId"`
    Cores      int32    `json:"cores"`
    ModelName  string   `json:"modelName"`
    Mhz        float64  `json:"mhz"`
    CacheSize  int32    `json:"cacheSize"`
    Flags      []string `json:"flags"`
    Microcode  string   `json:"microcode"`

func Info Uses

func Info() ([]InfoStat, error)

CPUInfo on linux will return 1 item per physical thread.

CPUs have three levels of counting: sockets, cores, threads. Cores with HyperThreading count as having 2 threads per core. Sockets often come with many physical CPU cores. For example a single socket board with two cores each with HT will return 4 CPUInfoStat structs on Linux and the "Cores" field set to 1.

func InfoWithContext Uses

func InfoWithContext(ctx context.Context) ([]InfoStat, error)

func (InfoStat) String Uses

func (c InfoStat) String() string

type TimesStat Uses

type TimesStat struct {
    CPU       string  `json:"cpu"`
    User      float64 `json:"user"`
    System    float64 `json:"system"`
    Idle      float64 `json:"idle"`
    Nice      float64 `json:"nice"`
    Iowait    float64 `json:"iowait"`
    Irq       float64 `json:"irq"`
    Softirq   float64 `json:"softirq"`
    Steal     float64 `json:"steal"`
    Guest     float64 `json:"guest"`
    GuestNice float64 `json:"guestNice"`

TimesStat contains the amounts of time the CPU has spent performing different kinds of work. Time units are in seconds. It is based on linux /proc/stat file.

func Times Uses

func Times(percpu bool) ([]TimesStat, error)

func TimesWithContext Uses

func TimesWithContext(ctx context.Context, percpu bool) ([]TimesStat, error)

func (TimesStat) String Uses

func (c TimesStat) String() string

func (TimesStat) Total Uses

func (c TimesStat) Total() float64

Total returns the total number of seconds in a CPUTimesStat

Package cpu imports 12 packages (graph) and is imported by 666 packages. Updated 2020-11-07. Refresh now. Tools for package owners.