plugin

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2024 License: Apache-2.0 Imports: 33 Imported by: 1

Documentation

Index

Constants

View Source
const (
	NumaMemoryBalancer               = "numa_memory_balancer"
	EvictionPluginNameMemoryBalancer = "numa_memory_balancer"

	EvictReason = "the memory node %v is under bandwidth pressure"

	MetricNumaMemoryBalance = "numa_memory_balance"
)
View Source
const (
	BandwidthHighThreshold   float64 = 0.8
	BandwidthMediumThreshold float64 = 0.5

	PingPongDetectThresholdInMinutes = 15

	MigratePagesThreshold = 0.7
	BalanceInterval       = 30 * time.Second
)
View Source
const (
	CacheReaper = "cache-reaper"
)
View Source
const (
	MemoryGuard = "memory-guard"
)
View Source
const (
	MemsetBinder = "memset-binder"
)

Variables

This section is empty.

Functions

func GetRegisteredInitializers

func GetRegisteredInitializers() map[types.MemoryAdvisorPluginName]InitFunc

func RegisterInitializer

func RegisterInitializer(name types.MemoryAdvisorPluginName, initFunc InitFunc)

Types

type BalanceInfo added in v0.4.1

type BalanceInfo struct {
	EvictPods                    []EvictPod         `json:"evictPods"`
	BalancePods                  []BalancePod       `json:"balancePods"`
	DestNumas                    []NumaInfo         `json:"destNumas"`
	NeedBalance                  bool               `json:"needBalance"`
	BandwidthPressure            bool               `json:"bandwidthPressure"`
	BalanceLevel                 BalanceLevel       `json:"balanceLevel"`
	TotalRSS                     float64            `json:"totalRSS"`
	MaxLatencyNuma               *NumaLatencyInfo   `json:"maxLatencyNuma"`
	MaxBandwidthNuma             *NumaLatencyInfo   `json:"maxBandwidthNuma"`
	RawNumaLatencyInfo           []*NumaLatencyInfo `json:"rawNumaLatencyInfo"`
	MaxLatencyNumaBandwidthLevel BandwidthLevel     `json:"maxLatencyNumaBandwidthLevel"`
	SourceNuma                   *NumaLatencyInfo   `json:"sourceNuma"`
	Status                       BalanceStatus      `json:"status"`
	FailedReason                 string             `json:"failedReason"`
	DetectTime                   time.Time          `json:"detectTime"`
	BalanceExecuted              bool               `json:"balanceExecuted"`
	EvictExecuted                bool               `json:"evictExecuted"`
}

type BalanceLevel added in v0.4.1

type BalanceLevel string
const (
	ForceBalance BalanceLevel = "forceBalance"
	GraceBalance BalanceLevel = "graceBalance"
)

type BalancePod added in v0.4.1

type BalancePod struct {
	Namespace       string   `json:"namespace"`
	Name            string   `json:"name"`
	UID             string   `json:"UID"`
	Containers      []string `json:"containers"`
	RSSOnSourceNuma float64  `json:"RSSOnSourceNuma"`
	DestNumas       []int    `json:"destNumas"`
}

type BalanceStatus added in v0.4.1

type BalanceStatus string
const (
	BalanceStatusPreparing      BalanceStatus = "preparing"
	BalanceStatusPrepareSuccess BalanceStatus = "prepareSuccess"
	BalanceStatusPrepareFailed  BalanceStatus = "prepareFailed"
)

type BandwidthLevel added in v0.4.1

type BandwidthLevel string
const (
	BandwidthLevelLow    BandwidthLevel = "low"
	BandwidthLevelMedium BandwidthLevel = "medium"
	BandwidthLevelHigh   BandwidthLevel = "high"
)

type EvictPod added in v0.4.1

type EvictPod struct {
	Namespace string `json:"namespace"`
	Name      string `json:"name"`
	UID       string `json:"UID"`
}

type InitFunc

type InitFunc func(conf *config.Configuration, extraConfig interface{}, metaReader metacache.MetaReader,
	metaServer *metaserver.MetaServer, emitter metrics.MetricEmitter) MemoryAdvisorPlugin

type MemoryAdvisorPlugin

type MemoryAdvisorPlugin interface {
	// Reconcile triggers an episode of plugin update
	Reconcile(status *types.MemoryPressureStatus) error
	// GetAdvices return the advices
	GetAdvices() types.InternalMemoryCalculationResult
}

MemoryAdvisorPlugin generates resource provision result based on configured algorithm

func NewCacheReaper

func NewCacheReaper(conf *config.Configuration, extraConfig interface{}, metaReader metacache.MetaReader, metaServer *metaserver.MetaServer, emitter metrics.MetricEmitter) MemoryAdvisorPlugin

func NewMemoryBalancer added in v0.4.1

func NewMemoryBalancer(conf *config.Configuration, _ interface{}, metaReader metacache.MetaReader, metaServer *metaserver.MetaServer, emitter metrics.MetricEmitter) MemoryAdvisorPlugin

func NewMemoryGuard

func NewMemoryGuard(conf *config.Configuration, extraConfig interface{}, metaReader metacache.MetaReader, metaServer *metaserver.MetaServer, emitter metrics.MetricEmitter) MemoryAdvisorPlugin

func NewMemsetBinder

func NewMemsetBinder(conf *config.Configuration, extraConfig interface{}, metaReader metacache.MetaReader, metaServer *metaserver.MetaServer, emitter metrics.MetricEmitter) MemoryAdvisorPlugin

type NumaInfo added in v0.4.1

type NumaInfo struct {
	*NumaLatencyInfo
	Distance int `json:"Distance"`
}

type NumaLatencyInfo added in v0.4.1

type NumaLatencyInfo struct {
	NumaID             int     `json:"NumaID"`
	ReadLatency        float64 `json:"ReadLatency"`
	ReadWriteBandwidth float64 `json:"ReadWriteBandwidth"`
}

type PodSort added in v0.4.1

type PodSort struct {
	Pod          *v1.Pod
	DestNumaList []int
	SortValue    float64
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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