automaxprocs: go.uber.org/automaxprocs/internal/cgroups Index | Files

package cgroups

import "go.uber.org/automaxprocs/internal/cgroups"

Package cgroups provides utilities to access Linux control group (CGroups) parameters (CPU quota, for example) for a given process.

Index

Package Files

cgroup.go cgroups.go doc.go errors.go mountpoint.go subsys.go

type CGroup Uses

type CGroup struct {
    // contains filtered or unexported fields
}

CGroup represents the data structure for a Linux control group.

func NewCGroup Uses

func NewCGroup(path string) *CGroup

NewCGroup returns a new *CGroup from a given path.

func (*CGroup) ParamPath Uses

func (cg *CGroup) ParamPath(param string) string

ParamPath returns the path of the given cgroup param under itself.

func (*CGroup) Path Uses

func (cg *CGroup) Path() string

Path returns the path of the CGroup*.

type CGroupSubsys Uses

type CGroupSubsys struct {
    ID         int
    Subsystems []string
    Name       string
}

CGroupSubsys represents the data structure for entities in `/proc/$PID/cgroup`. See also proc(5) for more information.

func NewCGroupSubsysFromLine Uses

func NewCGroupSubsysFromLine(line string) (*CGroupSubsys, error)

NewCGroupSubsysFromLine returns a new *CGroupSubsys by parsing a string in the format of `/proc/$PID/cgroup`

type CGroups Uses

type CGroups map[string]*CGroup

CGroups is a map that associates each CGroup with its subsystem name.

func NewCGroups Uses

func NewCGroups(procPathMountInfo, procPathCGroup string) (CGroups, error)

NewCGroups returns a new *CGroups from given `mountinfo` and `cgroup` files under for some process under `/proc` file system (see also proc(5) for more information).

func NewCGroupsForCurrentProcess Uses

func NewCGroupsForCurrentProcess() (CGroups, error)

NewCGroupsForCurrentProcess returns a new *CGroups instance for the current process.

func (CGroups) CPUQuota Uses

func (cg CGroups) CPUQuota() (float64, bool, error)

CPUQuota returns the CPU quota applied with the CPU cgroup controller. It is a result of `cpu.cfs_quota_us / cpu.cfs_period_us`. If the value of `cpu.cfs_quota_us` was not set (-1), the method returns `(-1, nil)`.

type MountPoint Uses

type MountPoint struct {
    MountID        int
    ParentID       int
    DeviceID       string
    Root           string
    MountPoint     string
    Options        []string
    OptionalFields []string
    FSType         string
    MountSource    string
    SuperOptions   []string
}

MountPoint is the data structure for the mount points in `/proc/$PID/mountinfo`. See also proc(5) for more information.

func NewMountPointFromLine Uses

func NewMountPointFromLine(line string) (*MountPoint, error)

NewMountPointFromLine parses a line read from `/proc/$PID/mountinfo` and returns a new *MountPoint.

func (*MountPoint) Translate Uses

func (mp *MountPoint) Translate(absPath string) (string, error)

Translate converts an absolute path inside the *MountPoint's file system to the host file system path in the mount namespace the *MountPoint belongs to.

Package cgroups imports 7 packages (graph) and is imported by 1 packages. Updated 2017-08-29. Refresh now. Tools for package owners.