kubernetesk8s.io/kubernetes/test/integration/scheduler_perf Index | Files

package benchmark

import "k8s.io/kubernetes/test/integration/scheduler_perf"

Index

Constants

const (

	// Create continuously create API objects without deleting them.
	Create = "create"
	// Recreate creates a number of API objects and then delete them, and repeat the iteration.
	Recreate = "recreate"
)
const DefaultLoggingVerbosity = 2

Run with -v=2, this is the default log level in production.

In a PR this can be bumped up temporarily to run pull-kubernetes-scheduler-perf with more log output.

Variables

var LoggingConfig *logsapi.LoggingConfiguration
var (

	// PluginNames is the names of the plugins that scheduler_perf collects metrics for.
	// We export this variable because people outside k/k may want to put their custom plugins.
	PluginNames = []string{
		names.PrioritySort,
		names.DefaultBinder,
		names.DefaultPreemption,
		names.DynamicResources,
		names.ImageLocality,
		names.InterPodAffinity,
		names.NodeAffinity,
		names.NodeName,
		names.NodePorts,
		names.NodeResourcesBalancedAllocation,
		names.NodeResourcesFit,
		names.NodeUnschedulable,
		names.NodeVolumeLimits,
		names.PodTopologySpread,
		names.SchedulingGates,
		names.TaintToleration,
		names.VolumeBinding,
		names.VolumeRestrictions,
		names.VolumeZone,
	}
)

Functions

func RunBenchmarkPerfScheduling

func RunBenchmarkPerfScheduling(b *testing.B, outOfTreePluginRegistry frameworkruntime.Registry, testcaseLabelSelectors []string)

RunBenchmarkPerfScheduling runs the scheduler performance tests.

You can pass your own scheduler plugins via outOfTreePluginRegistry. Also, you may want to put your plugins in PluginNames variable in this package to collect metrics for them. testcaseLabelSelectors is available to select specific test cases to run with labels on them.

Types

type DataItem

type DataItem struct {
	// Data is a map from bucket to real data point (e.g. "Perc90" -> 23.5). Notice
	// that all data items with the same label combination should have the same buckets.
	Data map[string]float64 `json:"data"`
	// Unit is the data unit. Notice that all data items with the same label combination
	// should have the same unit.
	Unit string `json:"unit"`
	// Labels is the labels of the data item.
	Labels map[string]string `json:"labels,omitempty"`
	// contains filtered or unexported fields
}

DataItem is the data point.

type DataItems

type DataItems struct {
	Version   string     `json:"version"`
	DataItems []DataItem `json:"dataItems"`
}

DataItems is the data point set. It is the struct that perf dashboard expects.

type FeatureGateFlag

type FeatureGateFlag interface {
	featuregate.FeatureGate
	flag.Value
}
var LoggingFeatureGate FeatureGateFlag

type SchedulingStage

type SchedulingStage string
const (
	Scheduled SchedulingStage = "Scheduled"
	Attempted SchedulingStage = "Attempted"
)

Source Files

create.go dra.go label_selector.go scheduler_perf.go update.go util.go

Version
v1.32.0-alpha.1
Published
Oct 1, 2024
Platform
js/wasm
Imports
70 packages
Last checked
1 hour ago

Tools for package owners.