Documentation ¶
Index ¶
- Constants
- Variables
- func ParseCPU(cpuAllowance string, cpuPriority string) (string, string, string, error)
- func TaskSchedulerTrigger(srcType string, srcName string, srcStatus string)
- type Backend
- type CGroup
- func (cg *CGroup) GetBlkioWeight() (string, error)
- func (cg *CGroup) GetCPUAcctUsage() (string, error)
- func (cg *CGroup) GetMaxMemory() (string, error)
- func (cg *CGroup) GetMemoryMaxUsage() (string, error)
- func (cg *CGroup) GetMemorySoftLimit() (string, error)
- func (cg *CGroup) GetMemorySwMaxUsage() (string, error)
- func (cg *CGroup) GetMemorySwapLimit() (string, error)
- func (cg *CGroup) GetMemorySwapUsage() (string, error)
- func (cg *CGroup) GetMemoryUsage() (string, error)
- func (cg *CGroup) GetProcessesUsage() (string, error)
- func (cg *CGroup) SetBlkioWeight(value string) error
- func (cg *CGroup) SetCPUCfsPeriod(value string) error
- func (cg *CGroup) SetCPUCfsQuota(value string) error
- func (cg *CGroup) SetCPUShare(value string) error
- func (cg *CGroup) SetMaxHugepages(pageType string, value string) error
- func (cg *CGroup) SetMaxProcesses(max int64) error
- func (cg *CGroup) SetMemoryMaxUsage(max string) error
- func (cg *CGroup) SetMemorySoftLimit(softLim string) error
- func (cg *CGroup) SetMemorySwapMax(max string) error
- func (cg *CGroup) SetMemorySwappiness(value string) error
- func (cg *CGroup) SetNetIfPrio(value 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 (*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) GetMaxMemory ¶
GetMaxMemory 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) GetMemorySwMaxUsage ¶
GetMemorySwMaxUsage returns the record high for swap usage
func (*CGroup) GetMemorySwapLimit ¶
GetMemorySwapLimit returns the hard limit on 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) SetBlkioWeight ¶
SetBlkioWeight set the currently allowed range of weights
func (*CGroup) SetCPUCfsPeriod ¶
SetCPUCfsPeriod sets the duration in ms for each scheduling period
func (*CGroup) SetCPUCfsQuota ¶
SetCPUCfsQuota sets the max time in ms during each cfs_period_us that the current group can run for
func (*CGroup) SetCPUShare ¶
SetCPUShare sets the weight of each group in the same hierarchy
func (*CGroup) SetMaxHugepages ¶
SetMaxHugepages applies a limit to the number of processes
func (*CGroup) SetMaxProcesses ¶
SetMaxProcesses applies a limit to the number of processes
func (*CGroup) SetMemoryMaxUsage ¶
SetMemoryMaxUsage sets the hard limit for memory
func (*CGroup) SetMemorySoftLimit ¶
SetMemorySoftLimit set the soft limit for memory
func (*CGroup) SetMemorySwapMax ¶
SetMemorySwapMax 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 )