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
- Choose arrival and service distributions, their rates or means, the server count and waiting-room capacity.
- Enter a nonzero seed, total arrivals and how many initial arrivals to exclude as warmup.
- Choose FIFO, LIFO or shortest-known-service. Press Run to create a bounded customer workload and process arrival and completion events.
- Compare nominal offered load with measured waits, rejection, busy time and queue length; switch presets or policy while keeping the seed.
- 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.
Comments & questions