Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Decision ¶
type Decision struct {
Admitted bool `json:"admitted"`
Reason Reason `json:"reason"`
Pool string `json:"pool"`
RequiredCPUReserve int `json:"required_cpu_reserve"`
RequiredMemoryReserve int `json:"required_memory_reserve_mib"`
RemainingCPUUnits int `json:"remaining_cpu_units"`
RemainingMemoryMiB int `json:"remaining_memory_mib"`
RemainingAvailableMiB int `json:"remaining_available_memory_mib"`
}
func Evaluate ¶
func Evaluate(snapshot HostSnapshot, policy ReservePolicy, request Request) (Decision, error)
Evaluate uses one schedulable CPU unit for every requested vCPU. A CPU unit is a physical core on dedicated hardware or one provider-guaranteed vCPU on the current virtual host. No SMT or local overcommit multiplier is assumed.
type HostSnapshot ¶
type HostSnapshot struct {
Healthy bool `json:"healthy" yaml:"healthy"`
TotalCPUUnits int `json:"total_cpu_units" yaml:"total_cpu_units"`
TotalMemoryMiB int `json:"total_memory_mib" yaml:"total_memory_mib"`
AvailableMemoryMiB int `json:"available_memory_mib" yaml:"available_memory_mib"`
AllocatedCPUUnits int `json:"allocated_cpu_units" yaml:"allocated_cpu_units"`
AllocatedMemoryMiB int `json:"allocated_memory_mib" yaml:"allocated_memory_mib"`
FreeDiskPercent int `json:"free_disk_percent" yaml:"free_disk_percent"`
PressureAvailable bool `json:"pressure_available" yaml:"pressure_available"`
CPUSomeAvg10 float64 `json:"cpu_some_avg10" yaml:"cpu_some_avg10"`
MemoryFullAvg10 float64 `json:"memory_full_avg10" yaml:"memory_full_avg10"`
IOFullAvg10 float64 `json:"io_full_avg10" yaml:"io_full_avg10"`
RecentOOMKills int `json:"recent_oom_kills" yaml:"recent_oom_kills"`
}
type Reason ¶
type Reason string
const ( ReasonAdmitted Reason = "admitted" ReasonHostUnhealthy Reason = "host-unhealthy" ReasonDiskPressure Reason = "disk-pressure" ReasonPoolSaturated Reason = "pool-saturated" ReasonQueueIntent Reason = "queue-intent" ReasonInsufficientCPU Reason = "insufficient-cpu" ReasonInsufficientMemory Reason = "insufficient-memory" ReasonCPUPressure Reason = "cpu-pressure" ReasonMemoryPressure Reason = "memory-pressure" ReasonIOPressure Reason = "io-pressure" ReasonRecentOOM Reason = "recent-oom" ReasonDiagnosticWAL Reason = "storage-high-watermark" )
type ReservePolicy ¶
type ReservePolicy struct {
MinimumCPUUnits int
// MaximumFleetCPUPercent means aggregate CPU is enforced by the worker
// cgroup. In that mode the admission ledger may commit all physical vCPU;
// the cgroup, rather than stranded integer CPU units, preserves headroom.
MaximumFleetCPUPercent int
MinimumMemoryMiB int
MinimumPercent int
MinimumFreeDiskPercent int
RequirePressure bool
MaxCPUSomeAvg10 float64
MaxMemoryFullAvg10 float64
MaxIOFullAvg10 float64
MaxRecentOOMKills int
}
Click to show internal directories.
Click to hide internal directories.