Queueing Simulation Lab

Queueing Simulation Lab

Explore how random arrivals, service times and queue discipline change a finite service system. The same seed recreates the same customer arrivals and service requirements, so FIFO, LIFO and shortest-known-service can be compared fairly. The warmup count excludes early arrivals from customer wait summaries; a separate observation interval measures server utilization. All computation runs in your browser.

1. Generate a bounded queue

Rates are arrivals per minute; service mean is minutes per customer. All values must stay within the shown limits. The same seed reproduces the same workload.

FIFO serves earliest waiting; LIFO serves latest waiting; shortest selects the smallest pre-drawn service requirement. No job is preempted. A zero-slot queue rejects arrivals when all servers are busy.

Set a service scenario and run the seeded simulation.

Comments & questions

Queueing Simulation Lab

Explore how random arrivals, service times and queue discipline change a finite service system. The same seed recreates the same customer arrivals and service requirements, so FIFO, LIFO and shortest-known-service can be compared fairly. The warmup count excludes early arrivals from customer wait summaries; a separate observation interval measures server utilization. All computation runs in your browser.

Key features

  • Fixed or exponential interarrival and service times with independent seeded streams
  • One to twelve parallel servers and a bounded waiting room, with rejected arrivals shown explicitly
  • Non-preemptive FIFO, LIFO and shortest-known-service queue choices
  • Warmup-separated mean and 95th-percentile wait, system time, rejection and observed utilization
  • Actual event timeline of waiting customers and busy servers with a warmup marker
  • Download a standalone SVG chart and every customer's numeric event record as CSV

How to use

  1. Choose arrival and service distributions, their rates or means, the server count and waiting-room capacity.
  2. Enter a nonzero seed, total arrivals and how many initial arrivals to exclude as warmup.
  3. Choose FIFO, LIFO or shortest-known-service. Press Run to create a bounded customer workload and process arrival and completion events.
  4. Compare nominal offered load with measured waits, rejection, busy time and queue length; switch presets or policy while keeping the seed.
  5. Save the SVG timeline and full per-customer CSV if you need to review or share the experiment.

Use cases

  • Compare one versus two service counters for a hypothetical arrival stream
  • See why a nominal load above capacity can create long waits and a backlog
  • Compare FIFO with shortest-known-service without changing the generated workload
  • Separate warmup arrivals from reported waits in a reproducible finite run

Frequently asked questions

Does offered load prove a real queue is stable?

No. It is arrival rate times mean service minutes divided by servers. Below one indicates nominal capacity exceeds mean demand in this model; above one signals overload. Equality is a boundary. A finite seeded run, nonstationarity, variability and real service rules can differ.

How are warmup and utilization calculated?

The first N arrivals are excluded from customer wait and rejection summaries. Busy-server time is integrated from the first measured arrival to the last generated arrival, divided by the number of servers and that interval. All accepted jobs are then drained to obtain complete waits; their later drain time is not added to utilization.

What happens when the waiting room is full?

An arrival finding every server busy and all waiting slots occupied is rejected. Rejected customers have no invented service or wait time, and their count appears separately.

What does shortest service mean here?

The model draws each customer's complete service requirement on arrival. At each server release it chooses the shortest known waiting job without interrupting a job already in service. Actual services often cannot know their duration in advance.

Is this an M/M/c calculator or a capacity forecast?

Exponential arrivals and service resemble a finite M/M/c experiment, but finite customer counts, a bounded queue, warmup and chosen discipline make this a simulation, not an analytic infinite-horizon guarantee or a staffing recommendation.

Privacy

Parameters and generated customer records stay in this browser tab. This tool does not upload workloads or save them automatically; SVG and CSV are downloaded only when requested.

Related Tools

Resource Capacity SchedulerProbability Experiment LabGantt Dependency PlannerWasm Module InspectorHreflang Matrix CheckerAST Query PlaygroundContainer Build GraphDependency Graph ExplorerSemver Range LabCron Schedule AuditorPatch Review WorkbenchSource Map ExplorerLocalization Catalog AuditorStructured Data ReviewerHTTP Archive AnalyzerWebhook Signature LabProtobuf Schema WorkbenchGraphQL Schema LabAvro Schema EvolutionLocal SQL WorkbenchSchema Form BuilderMesh Repair WorkbenchPipe Network LabRobot Arm Kinematics LabThermal Network LabBeam Response LabGear Train DesignerTolerance Stackup LabSensor Calibration FitPCB Stackup PlannerDigital Filter DesignerNetwork Reachability MapSun Shadow MapGPS Error SimulatorDigital Logic SimulatorAnalog Circuit LabMechanism Linkage LabAnalysis Mesh GeneratorOpenAPI Contract InspectorDatabase Migration PlannerDimensional Equation CheckerTruss Force LabBoolean Minimization LabControl Response LabGeofence Event SimulatorCoordinate Reference LabSurvey Traverse LabRaster Classification LabChoropleth Design LabMap Print ComposerRaster Reprojection LabElevation Contour MakerTerrain Viewshed LabWatershed DelineatorMap Tile PackagerText File Encoding WorkbenchFilesystem Portability AuditorSBOM License ExplorerFile Signature Auditornpm Lockfile Conflict ResolverSource Secret AuditorOffline Web Package BuilderCertificate Chain InspectorTorrent Metainfo InspectorChunked File PackagerEncrypted File VaultDuplicate File FinderArchive WorkbenchDesign Token ManagerSpacing Token DesignerResponsive Type SystemPackaging Dieline DesignerSVG Icon Sprite PackerFlex Layout PlaygroundCSS Grid PlaygroundRegex Equivalence LabMarkdown Repository AuditorLog Template MinerResponsive Layout AuditorEmail Template PreviewInternal Link GraphState Machine TesterPetri Net SimulatorGit History VisualizerCurl Request WorkbenchBinary Protocol DesignerHex File EditorBinary Patch WorkbenchFile Signature WorkbenchAPI Mock SandboxSchema Column MapperEvent Log SessionizerER Diagram DesignerTime Series Gap AuditorStratified Data SplitterData Lineage DesignerDecision Tree LabData Anonymization WorkbenchData Expectation RunnerJSON Schema ValidatorBasket Pattern AnalyzerRobots Policy TesterSEO HTML AuditorAccessibility Structure AuditorSyndication Feed WorkbenchIndexNow Payload BuilderCrawl Log AnalyzerCSP Policy WorkbenchSearch Performance AnalyzerCSV Formula Risk AuditorCORS Response SimulatorCache Header LabCookie Policy InspectorWeb Vitals Trace LabSitemap Health AuditorBatch File RenamerFile Manifest VerifierFolder Space MapFolder Difference ReviewerRoute Order OptimizerGeoJSON Map EditorPolygon Overlay LabCartographic Label PlacerSpatial Table JoinGeoJSON Topology AuditorGPX Track AnalyzerTrack Privacy RedactorCSV Table JoinCSV Pivot WorkbenchScientific Data ProfilerTabular Cleaning WorkbenchRecord ReconciliationData Dictionary BuilderCanonical Graph AuditorRedirect Plan TesterHTTP response and ping reference testBrowser and System InformationJSON ↔ YAML ConverterXML ↔ JSON ConverterHTML FormatterJavaScript MinifierMock Data Generator.gitignore GeneratorLicense GeneratorUser-Agent ParserPassword Strength CheckerCode to ImageXML FormatterHTTP Status Code LookupMIME Type LookupJS & SQL String EscapeCSS Box Shadow GeneratorCSS Gradient GeneratorIndent ConverterNumber Base ConverterUnicode Escape ConverterUnicode InspectorJSON Structure DiffMarkdown Table GeneratorBase64 EncoderJSON FormatterURL EncoderSQL FormatterCron Expression GeneratorRegex TesterUUID GeneratorHash GeneratorTimestamp ConverterJWT DecoderHTML Entity ConverterMarkdown PreviewCSS MinifierMeta Tag GeneratorJSON ↔ CSVCase ConverterImage to Base64
Explore all Dev Tools tools →Image/Media →Text/Convert →Life/Fun →