Documentation ¶
Index ¶
- Constants
- Variables
- func ParseCPU(cpuAllowance string, cpuPriority string) (int64, int64, int64, error)
- func TaskSchedulerTrigger(srcType string, srcName string, srcStatus string)
- type Backend
- type CGroup
- func (cg *CGroup) GetBlkioWeight() (int64, error)
- func (cg *CGroup) GetCPUAcctUsage() (int64, error)
- func (cg *CGroup) GetCpuset() (string, error)
- func (cg *CGroup) GetEffectiveCpuset() (string, error)
- func (cg *CGroup) GetMemoryLimit() (int64, error)
- func (cg *CGroup) GetMemoryMaxUsage() (int64, error)
- func (cg *CGroup) GetMemorySoftLimit() (int64, error)
- func (cg *CGroup) GetMemorySwapLimit() (int64, error)
- func (cg *CGroup) GetMemorySwapMaxUsage() (int64, error)
- func (cg *CGroup) GetMemorySwapUsage() (int64, error)
- func (cg *CGroup) GetMemoryUsage() (int64, error)
- func (cg *CGroup) GetProcessesUsage() (int64, error)
- func (cg *CGroup) SetBlkioLimit(dev string, oType string, uType string, limit int64) error
- func (cg *CGroup) SetBlkioWeight(limit int64) error
- func (cg *CGroup) SetCPUCfsLimit(limitPeriod int64, limitQuota int64) error
- func (cg *CGroup) SetCPUShare(limit int64) error
- func (cg *CGroup) SetCpuset(limit string) error
- func (cg *CGroup) SetHugepagesLimit(pageType string, limit int64) error
- func (cg *CGroup) SetMaxProcesses(limit int64) error
- func (cg *CGroup) SetMemoryLimit(limit int64) error
- func (cg *CGroup) SetMemorySoftLimit(limit int64) error
- func (cg *CGroup) SetMemorySwapLimit(limit int64) error
- func (cg *CGroup) SetMemorySwappiness(limit int64) error
- func (cg *CGroup) SetNetIfPrio(limit string) error
- type Info
- type Layout
- type ReadWriter
- type Resource
Constants ¶
const ( Backend(0) // V1 indicates the controller is backed by Cgroup V1. V1 = Backend(1) // V2 indicates the controller is backed by Cgroup V2. V2 = Backend(2) )Unavailable =
Variables ¶
var DeviceSchedRebalance = make(chan []string, 2)
DeviceSchedRebalance channel for scheduling a CPU rebalance.
var ErrControllerMissing = fmt.Errorf("Cgroup controller is missing")
ErrControllerMissing indicates that the requested controller isn't setup on the system.
var ErrUnknownVersion = fmt.Errorf("Unknown cgroup version")
ErrUnknownVersion indicates that a version other than those supported was detected during init.
Functions ¶
func TaskSchedulerTrigger ¶
TaskSchedulerTrigger triggers a CPU rebalance.
Types ¶
type CGroup ¶
type CGroup struct { UnifiedCapable bool // contains filtered or unexported fields }
CGroup represents the main cgroup abstraction.
func New ¶
func New(rw ReadWriter) (*CGroup, error)
New setups a new CGroup abstraction using the provided read/writer.
func NewFileReadWriter ¶
NewFileReadWriter returns a CGroup instance using the filesystem as its backend.
func (*CGroup) GetBlkioWeight ¶
GetBlkioWeight returns the currently allowed range of weights
func (*CGroup) GetCPUAcctUsage ¶
GetCPUAcctUsage returns the total CPU time in ns used by processes
func (*CGroup) GetEffectiveCpuset ¶
GetEffectiveCpuset returns the current set of CPUs for the cgroup
func (*CGroup) GetMemoryLimit ¶
GetMemoryLimit return the hard limit for memory
func (*CGroup) GetMemoryMaxUsage ¶
GetMemoryMaxUsage returns the record high for memory usage
func (*CGroup) GetMemorySoftLimit ¶
GetMemorySoftLimit returns the soft limit for memory
func (*CGroup) GetMemorySwapLimit ¶
GetMemorySwapLimit returns the hard limit on swap usage
func (*CGroup) GetMemorySwapMaxUsage ¶
GetMemorySwapMaxUsage returns the record high for swap usage
func (*CGroup) GetMemorySwapUsage ¶
GetMemorySwapUsage return current usage of swap
func (*CGroup) GetMemoryUsage ¶
GetMemoryUsage returns the current use of memory
func (*CGroup) GetProcessesUsage ¶
GetProcessesUsage returns the current number of pids
func (*CGroup) SetBlkioLimit ¶
SetBlkioLimit sets the specified read or write limit for a device
func (*CGroup) SetBlkioWeight ¶
SetBlkioWeight sets the currently allowed range of weights
func (*CGroup) SetCPUCfsLimit ¶
SetCPUCfsLimit sets the quota and duration in ms for each scheduling period
func (*CGroup) SetCPUShare ¶
SetCPUShare sets the weight of each group in the same hierarchy
func (*CGroup) SetHugepagesLimit ¶
SetHugepagesLimit applies a limit to the number of processes
func (*CGroup) SetMaxProcesses ¶
SetMaxProcesses applies a limit to the number of processes
func (*CGroup) SetMemoryLimit ¶
SetMemoryLimit sets the hard limit for memory
func (*CGroup) SetMemorySoftLimit ¶
SetMemorySoftLimit set the soft limit for memory
func (*CGroup) SetMemorySwapLimit ¶
SetMemorySwapLimit sets the hard limit for swap
func (*CGroup) SetMemorySwappiness ¶
SetMemorySwappiness sets swappiness paramet of vmscan
func (*CGroup) SetNetIfPrio ¶
SetNetIfPrio sets the priority for the process
type Info ¶
type Info struct { // Layout is one of CgroupsDisabled, CgroupsUnified, CgroupsHybrid, CgroupsLegacy Layout Layout // Namespacing indicates support for the cgroup namespace Namespacing bool }
Info contains system cgroup information
type Layout ¶
type Layout int
Layout determines the cgroup layout on this system
const ( // CgroupsDisabled indicates that cgroups are not supported CgroupsDisabled Layout = iota // CgroupsUnified indicates that this is a pure cgroup2 layout CgroupsUnified // CgroupsHybrid indicates that this is a mixed cgroup1 and cgroup2 layout CgroupsHybrid // CgroupsLegacy indicates that this is a pure cgroup1 layout CgroupsLegacy )
type ReadWriter ¶
type ReadWriter interface { Get(backend Backend, controller string, key string) (string, error) Set(backend Backend, controller string, key string, value string) error }
The ReadWriter interface is used to read/write cgroup data.
type Resource ¶
type Resource int
Resource is a generic type used to abstract resource control features support for the legacy and unified hierarchy.
const ( // Blkio resource control Blkio Resource = iota // BlkioWeight resource control BlkioWeight // CPU resource control CPU // CPUAcct resource control CPUAcct // CPUSet resource control CPUSet // Devices resource control Devices // Freezer resource control Freezer // Hugetlb resource control Hugetlb // Memory resource control Memory // MemoryMaxUsage resource control MemoryMaxUsage // MemorySwap resource control MemorySwap // MemorySwapMaxUsage resource control MemorySwapMaxUsage // MemorySwapUsage resource control MemorySwapUsage // MemorySwappiness resource control MemorySwappiness // NetPrio resource control NetPrio // Pids resource control Pids )