Class PreemptiveAutoScaler
java.lang.Object
desmoj.core.simulator.NamedObject
desmoj.core.simulator.ModelComponent
desmoj.core.simulator.Schedulable
desmoj.core.simulator.Entity
de.rss.fachstudie.MiSim.entities.patterns.Pattern
de.rss.fachstudie.MiSim.entities.patterns.ServiceOwnedPattern
de.rss.fachstudie.MiSim.entities.patterns.PeriodicServiceOwnedPattern
de.rss.fachstudie.MiSim.entities.patterns.PreemptiveAutoScaler
public final class PreemptiveAutoScaler extends PeriodicServiceOwnedPattern
Autoscaler that periodically checks all instances of a service. If the average CPU utilization is above the target
threshold a new instance will be created. If the utilization is below a threshold the service will be downscaled. The
instance with the lowest utilization will be shutdown. After an upscale the service is locked from downscaling during
the
holdTime to prevent a too early downscaling during a workload ramp up.- Author:
- Lion Wagner
- See Also:
- Auto-scaling Strategies for Cloud Computing Environments
-
Field Summary
Fields inherited from class de.rss.fachstudie.MiSim.entities.patterns.ServiceOwnedPattern
ownerFields inherited from class desmoj.core.simulator.Schedulable
_schedule -
Constructor Summary
Constructors Constructor Description PreemptiveAutoScaler(desmoj.core.simulator.Model model, String name, boolean showInTrace, Microservice owner) -
Method Summary
Modifier and Type Method Description protected voidonTriggered()Methods inherited from class de.rss.fachstudie.MiSim.entities.patterns.PeriodicServiceOwnedPattern
onFieldInitCompleted, shutdown, triggerMethods inherited from class de.rss.fachstudie.MiSim.entities.patterns.Pattern
initFieldsMethods inherited from class desmoj.core.simulator.Entity
clone, generateTraceForScheduling, getIdentNumber, getQueueingPriority, getQueues, getScheduledEvents, isEqual, isLarger, isLargerOrEqual, isNotEqual, isQueued, isSimProcess, isSmaller, isSmallerOrEqual, schedule, schedule, schedule, schedule, schedule, schedule, schedule, schedule, schedule, scheduleAfter, scheduleAfter, scheduleAfter, scheduleBefore, scheduleBefore, scheduleBefore, schedulePreempt, schedulePreempt, schedulePreempt, setQueueingPriorityMethods inherited from class desmoj.core.simulator.Schedulable
assignReporter, cancel, getCorrespondingReportable, isCurrent, isScheduled, rename, reSchedule, reSchedule, reSchedulePreempt, scheduledNext, setCorrespondingReportableMethods inherited from class desmoj.core.simulator.ModelComponent
current, currentEntity, currentEntityAll, currentEvent, currentlySendDebugNotes, currentlySendTraceNotes, currentModel, currentSimProcess, debugIsOn, debugOff, debugOn, getModel, isExperimentCompatible, isModelCompatible, presentTime, sendDebugNote, sendMessage, sendTraceNote, sendWarning, skipTraceNote, skipTraceNote, traceIsOn, traceOff, traceOnMethods inherited from class desmoj.core.simulator.NamedObject
getName, getQuotedName, toString
-
Constructor Details
-
PreemptiveAutoScaler
public PreemptiveAutoScaler(desmoj.core.simulator.Model model, String name, boolean showInTrace, Microservice owner)
-
-
Method Details
-
onTriggered
protected void onTriggered()- Specified by:
onTriggeredin classPeriodicServiceOwnedPattern
-