Documentation ¶
Overview ¶
Package cgroups provides utilities to access Linux control group (CGroups) parameters (total memory, for example) for a given process. The original implementation is taken from https://github.com/uber-go/automaxprocs
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsCGroupV2 ¶
IsCGroupV2 returns true if the system supports and uses cgroup2. It gets the required information for deciding from mountinfo file.
func MemoryQuotaV2 ¶
MemoryQuotaV2 returns the total memory limit of the process It is a result of cgroupv2 `memory.max`. If the value of `memory.max` was not set (max), the method returns `(-1, false, nil)`.
Types ¶
type CGroup ¶
type CGroup struct {
// contains filtered or unexported fields
}
CGroup represents the data structure for a Linux control group.
type CGroupSubsys ¶
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 ¶
CGroups is a map that associates each CGroup with its subsystem name.
func NewCGroups ¶
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 ¶
NewCGroupsForCurrentProcess returns a new *CGroups instance for the current process.
func (CGroups) MemoryQuota ¶
MemoryQuota returns the total memory limit of the process It is a result of `memory.limit_in_bytes`. If the value of `memory.limit_in_bytes` was not set (-1) or (9223372036854771712), the method returns `(-1, false, 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.