Documentation ¶
Index ¶
- Constants
- func DummyTMOBlockFn(ci *types.ContainerInfo, conf interface{}) bool
- func GetRegisteredInitializers() map[types.MemoryAdvisorPluginName]InitFunc
- func NewTmoEngineInstance(obj interface{}, metaServer *metaserver.MetaServer, ...) *tmoEngineInstance
- func RegisterInitializer(name types.MemoryAdvisorPluginName, initFunc InitFunc)
- func RegisterTMOBlockFunc(blockFnName string, blockFn TMOBlockFn)
- func RegisterTMOPolicyFunc(policyName v1alpha1.TMOPolicyName, tmoPolicyFn TmoPolicyFn)
- type BalanceInfo
- type BalanceLevel
- type BalancePod
- type BalanceStatus
- type BandwidthLevel
- type EvictPod
- type InitFunc
- type MemoryAdvisorPlugin
- func NewCacheReaper(conf *config.Configuration, extraConfig interface{}, ...) MemoryAdvisorPlugin
- func NewMemoryBalancer(conf *config.Configuration, _ interface{}, metaReader metacache.MetaReader, ...) MemoryAdvisorPlugin
- func NewMemoryGuard(conf *config.Configuration, extraConfig interface{}, ...) MemoryAdvisorPlugin
- func NewMemsetBinder(conf *config.Configuration, extraConfig interface{}, ...) MemoryAdvisorPlugin
- func NewTransparentMemoryOffloading(conf *config.Configuration, extraConfig interface{}, ...) MemoryAdvisorPlugin
- type NumaInfo
- type NumaLatencyInfo
- type PodSort
- type TMOBlockFn
- type TmoEngine
- type TmoPolicyFn
- type TmoStats
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 ( InactiveProbe = 0.1 OffloadingSizeScaleCoeff = 1.05 )
View Source
const (
CacheReaper = "cache-reaper"
)
View Source
const (
DummyTMOBlockFnName string = "dummy-tmo-block-fn"
)
View Source
const (
MemoryGuard = "memory-guard"
)
View Source
const (
MemsetBinder = "memset-binder"
)
View Source
const (
TransparentMemoryOffloading = "transparent-memory-offloading"
)
Variables ¶
This section is empty.
Functions ¶
func DummyTMOBlockFn ¶ added in v0.5.1
func DummyTMOBlockFn(ci *types.ContainerInfo, conf interface{}) bool
func GetRegisteredInitializers ¶
func GetRegisteredInitializers() map[types.MemoryAdvisorPluginName]InitFunc
func NewTmoEngineInstance ¶ added in v0.5.1
func NewTmoEngineInstance(obj interface{}, metaServer *metaserver.MetaServer, emitter metrics.MetricEmitter, tmoConf *tmo.TransparentMemoryOffloadingConfiguration) *tmoEngineInstance
func RegisterInitializer ¶
func RegisterInitializer(name types.MemoryAdvisorPluginName, initFunc InitFunc)
func RegisterTMOBlockFunc ¶ added in v0.5.1
func RegisterTMOBlockFunc(blockFnName string, blockFn TMOBlockFn)
func RegisterTMOPolicyFunc ¶ added in v0.5.1
func RegisterTMOPolicyFunc(policyName v1alpha1.TMOPolicyName, tmoPolicyFn TmoPolicyFn)
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 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 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
func NewTransparentMemoryOffloading ¶ added in v0.5.1
func NewTransparentMemoryOffloading(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 TMOBlockFn ¶ added in v0.5.1
type TMOBlockFn func(ci *types.ContainerInfo, conf interface{}) bool
type TmoEngine ¶ added in v0.5.1
type TmoEngine interface { GetContainerInfo() *types.ContainerInfo GetCgpath() string LoadConf(*tmo.TMOConfigDetail) GetConf() *tmo.TMOConfigDetail CalculateOffloadingTargetSize() GetOffloadingTargetSize() float64 }
type TmoPolicyFn ¶ added in v0.5.1
Source Files ¶
Click to show internal directories.
Click to hide internal directories.