Class PreemptiveAutoScaler

java.lang.Object
desmoj.core.simulator.NamedObject
desmoj.core.simulator.ModelComponent
desmoj.core.simulator.Schedulable

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

    owner

    Fields 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 void onTriggered()  

    Methods inherited from class de.rss.fachstudie.MiSim.entities.patterns.PeriodicServiceOwnedPattern

    onFieldInitCompleted, shutdown, trigger

    Methods inherited from class de.rss.fachstudie.MiSim.entities.patterns.Pattern

    initFields

    Methods 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, setQueueingPriority

    Methods inherited from class desmoj.core.simulator.Schedulable

    assignReporter, cancel, getCorrespondingReportable, isCurrent, isScheduled, rename, reSchedule, reSchedule, reSchedulePreempt, scheduledNext, setCorrespondingReportable

    Methods 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, traceOn

    Methods inherited from class desmoj.core.simulator.NamedObject

    getName, getQuotedName, toString

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • PreemptiveAutoScaler

      public PreemptiveAutoScaler​(desmoj.core.simulator.Model model, String name, boolean showInTrace, Microservice owner)
  • Method Details