automaxprocsgo.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

Types

type CGroup

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

CGroup represents the data structure for a Linux control group.

func NewCGroup

func NewCGroup(path string) *CGroup

NewCGroup returns a new *CGroup from a given path.

func (*CGroup) ParamPath

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

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

func (*CGroup) Path

func (cg *CGroup) Path() string

Path returns the path of the CGroup*.

type CGroupSubsys

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

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

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

type CGroups

type CGroups map[string]*CGroup

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

func NewCGroups

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

func NewCGroupsForCurrentProcess() (CGroups, error)

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

func (CGroups) CPUQuota

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

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

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

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

func (*MountPoint) Translate

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.

Source Files

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

Version
v1.4.0
Published
Feb 2, 2021
Platform
linux/amd64
Imports
7 packages
Last checked
4 minutes ago

Tools for package owners.