qrm

package
v0.3.5 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 0 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CPUDynamicPolicyConfig added in v0.3.0

type CPUDynamicPolicyConfig struct {
	// EnableCPUAdvisor indicates whether to enable sys-advisor module to calculate cpu resources
	EnableCPUAdvisor bool
	// EnableCPUPressureEviction indicates whether to enable cpu-pressure eviction, such as cpu load eviction or cpu
	// suppress eviction
	EnableCPUPressureEviction bool
	// EnableSyncingCPUIdle is set to sync specific cgroup path with EnableCPUIdle
	EnableSyncingCPUIdle bool
	// EnableCPUIdle indicates whether enabling cpu idle
	EnableCPUIdle bool
}

type CPUNativePolicyConfig added in v0.3.0

type CPUNativePolicyConfig struct {
	// EnableFullPhysicalCPUsOnly is a flag to enable extra allocation restrictions to avoid
	// different containers to possibly end up on the same core.
	EnableFullPhysicalCPUsOnly bool
	// CPUAllocationOption is the allocation option of cpu (packed/distributed).
	CPUAllocationOption string
}

type CPUQRMPluginConfig

type CPUQRMPluginConfig struct {
	// PolicyName is used to switch between several strategies
	PolicyName string
	// ReservedCPUCores indicates reserved cpus number for system agents
	ReservedCPUCores int
	// SkipCPUStateCorruption is set to skip cpu state corruption, and it will be used after updating state properties
	SkipCPUStateCorruption bool

	CPUDynamicPolicyConfig
	CPUNativePolicyConfig
}

func NewCPUQRMPluginConfig

func NewCPUQRMPluginConfig() *CPUQRMPluginConfig

type GenericQRMPluginConfiguration

type GenericQRMPluginConfiguration struct {
	StateFileDirectory            string
	QRMPluginSocketDirs           []string
	ExtraStateFileAbsPath         string
	ReclaimRelativeRootCgroupPath string
	PodDebugAnnoKeys              []string
}

func NewGenericQRMPluginConfiguration

func NewGenericQRMPluginConfiguration() *GenericQRMPluginConfiguration

type MemoryQRMPluginConfig

type MemoryQRMPluginConfig struct {
	// PolicyName is used to switch between several strategies
	PolicyName string
	// ReservedMemoryGB: the total reserved memories in GB
	ReservedMemoryGB uint64
	// SkipMemoryStateCorruption is ued to skip memory state corruption and it will be used after updating state properties
	SkipMemoryStateCorruption bool
	// EnableSettingMemoryMigrate is used to enable cpuset.memory_migrate for containers not numa_binding
	EnableSettingMemoryMigrate bool
	// EnableMemoryAdvisor indicates whether to enable sys-advisor module to calculate memory resources
	EnableMemoryAdvisor bool
	// ExtraControlKnobConfigFile: the absolute path of extra control knob config file
	ExtraControlKnobConfigFile string
}

func NewMemoryQRMPluginConfig

func NewMemoryQRMPluginConfig() *MemoryQRMPluginConfig

type NetClassConfig added in v0.2.0

type NetClassConfig struct {
	// ReclaimedCores is the network class id for reclaimed_cores
	ReclaimedCores uint32
	// SharedCores is the network class id for shared_cores
	SharedCores uint32
	// DedicatedCores is the network class id for dedicated_cores
	DedicatedCores uint32
	// SystemCores is the network class id for system_cores
	SystemCores uint32
}

type NetworkQRMPluginConfig added in v0.2.0

type NetworkQRMPluginConfig struct {
	// PolicyName is used to switch between several strategies
	PolicyName string
	NetClass   NetClassConfig
	// Reserved network bandwidth in unit of Mbps for business-critical jobs (e.g. online services).
	// In phase 1, we only support the reservation for business-critical jobs. The system component reservation might be added later.
	// Also, we do not differentiate the egress and ingress reservation for now. That is, the reserved bandwidth on egress and ingress is supposed to be same
	ReservedBandwidth uint32
	// The ratio of available capacity to NIC line speed. For example, a 25Gbps NIC's max bandwidth is around 23.5Gbps.
	// Please note, the ingress rate throttling may need additional virtual device like ifb, which results in lower capacity than egress
	EgressCapacityRate  float32
	IngressCapacityRate float32
	// skip network state corruption and it will be used after updating state properties
	SkipNetworkStateCorruption                      bool
	PodLevelNetClassAnnoKey                         string
	PodLevelNetAttributesAnnoKeys                   string
	IPv4ResourceAllocationAnnotationKey             string
	IPv6ResourceAllocationAnnotationKey             string
	NetNSPathResourceAllocationAnnotationKey        string
	NetInterfaceNameResourceAllocationAnnotationKey string
	NetClassIDResourceAllocationAnnotationKey       string
	NetBandwidthResourceAllocationAnnotationKey     string
}

NetworkQRMPluginConfig is the config of network QRM plugin

func NewNetworkQRMPluginConfig added in v0.2.0

func NewNetworkQRMPluginConfig() *NetworkQRMPluginConfig

NewNetworkQRMPluginConfig returns a NetworkQRMPluginConfig

type QRMPluginsConfiguration

type QRMPluginsConfiguration struct {
	*CPUQRMPluginConfig
	*MemoryQRMPluginConfig
	*NetworkQRMPluginConfig
}

func NewQRMPluginsConfiguration

func NewQRMPluginsConfiguration() *QRMPluginsConfiguration

Jump to

Keyboard shortcuts

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