cgroup

package
v0.0.0-...-ba09d25 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 29, 2021 License: Apache-2.0, MIT Imports: 20 Imported by: 0

Documentation

Overview

Package cgroup provides an interface to read and write configuration to cgroup.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidFormat    = errors.New("cgroup: parsing file with invalid format failed")
	ErrInvalidGroupPath = errors.New("cgroup: invalid group path")
)

Functions

func IsOnlyV2

func IsOnlyV2() bool

IsOnlyV2 checks whether cgroups V2 is enabled and V1 is not.

Types

type Cgroup

type Cgroup interface {
	Install(res *specs.LinuxResources) error
	Uninstall() error
	Join() (func(), error)
	CPUQuota() (float64, error)
	CPUUsage() (uint64, error)
	NumCPU() (int, error)
	MemoryLimit() (uint64, error)
	MakePath(controllerName string) string
}

Cgroup represents a cgroup configuration.

func NewFromPath

func NewFromPath(cgroupsPath string) (Cgroup, error)

NewFromPath creates a new Cgroup instance from the specified relative path. Cgroup paths are loaded based on the current process.

func NewFromPid

func NewFromPid(pid int) (Cgroup, error)

NewFromPid loads cgroup for the given process.

func NewFromSpec

func NewFromSpec(spec *specs.Spec) (Cgroup, error)

NewFromSpec creates a new Cgroup instance if the spec includes a cgroup path. Returns nil otherwise. Cgroup paths are loaded based on the current process.

type CgroupJSON

type CgroupJSON struct {
	Cgroup Cgroup `json:"cgroup"`
}

CgroupJSON is a wrapper for Cgroup that can be encoded to JSON.

func (*CgroupJSON) MarshalJSON

func (c *CgroupJSON) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.MarshalJSON

func (*CgroupJSON) UnmarshalJSON

func (c *CgroupJSON) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler.UnmarshalJSON

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL