Documentation ¶
Overview ¶
Package nextgc provides the implementation of memory usage controller, which aims to keep Go Runtime NextGC value lower than the RSS consumption hard limit to prevent OOM errors.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewControllerFromConfig ¶
func NewControllerFromConfig( logger logr.Logger, cfg *ControllerConfig, serviceStatsSubscription stats.ServiceStatsSubscription, backpressureOperator backpressure.Operator, ) (controller.Controller, error)
NewControllerFromConfig builds new controller.
Types ¶
type ComponentProportionalConfig ¶
type ComponentProportionalConfig struct { // Coefficient - coefficient used to computed weighted sum of in the controller equation Coefficient float64 `json:"coefficient"` // WindowSize - averaging window size for the EMA. Averaging is disabled if WindowSize is zero. WindowSize uint `json:"window_size"` }
ComponentProportionalConfig - controller's proportional component configuration.
func (*ComponentProportionalConfig) Prepare ¶
func (c *ComponentProportionalConfig) Prepare() error
Prepare - config validator.
type ControllerConfig ¶
type ControllerConfig struct { // RSSLimit - physical memory (RSS) consumption hard limit for a process. RSSLimit bytes.Bytes `json:"rss_limit"` // DangerZoneGOGC - RSS utilization threshold that triggers controller to // set more conservative parameters for GC. // Possible values are in range (0; 100). DangerZoneGOGC uint32 `json:"danger_zone_gogc"` // DangerZoneGOGC - RSS utilization threshold that triggers controller to // throttle incoming requests. // Possible values are in range (0; 100). DangerZoneThrottling uint32 `json:"danger_zone_throttling"` // Period - the periodicity of control parameters computation. Period duration.Duration `json:"period"` // ComponentProportional - controller's proportional component configuration ComponentProportional *ComponentProportionalConfig `json:"component_proportional"` }
ControllerConfig - controller configuration.
func (*ControllerConfig) Prepare ¶
func (c *ControllerConfig) Prepare() error
Prepare - config validator.
Click to show internal directories.
Click to hide internal directories.