Documentation ¶
Overview ¶
Package cgroup provides an interface to read and write configuration to cgroup.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidFormat = errors.New("cgroup: parsing file with invalid format failed") ErrInvalidGroupPath = errors.New("cgroup: invalid group path") )
var ( // ErrBadResourceSpec indicates that a cgroupSystemd function was // passed a specs.LinuxResources object that is impossible or illegal // to process. ErrBadResourceSpec = errors.New("misconfigured resource spec") // ErrInvalidSlice indicates that the slice name passed via cgroup.Path is // invalid. ErrInvalidSlice = errors.New("invalid slice name") )
Functions ¶
func RangeToBits ¶
RangeToBits converts a text representation of a CPU mask (as written to or read from cgroups' cpuset.* files, e.g. "1,3-5") to a slice of bytes with the corresponding bits set (as consumed by systemd over dbus as AllowedCPUs/AllowedMemoryNodes unit property value). Copied from runc.
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 CreateMockSystemdCgroup ¶
func CreateMockSystemdCgroup() Cgroup
CreateMockSystemdCgroup returns a mock Cgroup configured for systemd. This is useful for testing.
func NewFromPath ¶
NewFromPath creates a new Cgroup instance from the specified relative path. Cgroup paths are loaded based on the current process. If useSystemd is true, the Cgroup will be created and managed with systemd. This requires systemd (>=v244) to be running on the host and the cgroup path to be in the form `slice:prefix:name`.
func NewFromPid ¶
NewFromPid loads cgroup for the given process. If useSystemd is true, the Cgroup will be created and managed with systemd. This requires systemd (>=v244) to be running on the host and the cgroup path to be in the form `slice:prefix:name`.
func NewFromSpec ¶
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. If useSystemd is true, the Cgroup will be created and managed with systemd. This requires systemd (>=v244) to be running on the host and the cgroup path to be in the form `slice:prefix:name`.
type CgroupJSON ¶
type CgroupJSON struct {
Cgroup 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