Queue Buffer Delay Calculator
Calculate queue buffer delay from buffer size, link rate, target delay, occupancy, RTT, and packet size with tuning rows and delay curve exports.{{ result.summaryTitle }}
| Budget metric | Value | Readout | Copy |
|---|---|---|---|
| No budget rows available. | |||
| {{ row.metric }} | {{ row.value }} | {{ row.readout }} | |
| Delay ceiling | Allowed buffer | Current margin | Tuning note | Copy |
|---|---|---|---|---|
| No tuning rows available. | ||||
| {{ row.ceiling }} | {{ row.allowedBuffer }} | {{ row.currentMargin }} | {{ row.note }} | |
Introduction:
Queue buffer delay is the waiting time created when packets sit in a bottleneck queue before the link can transmit them. A buffer that looks small in storage terms can add a large amount of latency on a slow or shaped link, because every queued byte must drain at the link's bit rate. That delay can make calls, games, remote shells, video meetings, and interactive applications feel slow even when raw throughput looks acceptable.
The calculator answers a focused planning question: how much delay does the selected buffer size create at the selected egress rate, and how does that compare with a delay target? It converts KiB, MiB, GiB, or decimal MB into bytes, converts Kbps, Mbps, or Gbps into bits per second, and returns full-buffer drain delay, an occupancy-weighted busy-period estimate, target buffer size, target margin, packet depth, serialization time, and a bandwidth-delay product comparison when baseline round-trip time is supplied.
Use it before changing a shaper, interface queue, virtual appliance limit, WAN handoff, or lab traffic generator. The result does not measure the live path. It turns the numbers you supply into a repeatable estimate so you can see whether a queue can plausibly stay inside a latency budget before you run a field test.
A large buffer is not always wrong. Bulk transfer queues can tolerate more waiting than voice, game, control-plane, or remote-console traffic. The useful question is whether the queue size, link rate, average occupancy, and target delay match the service class you are protecting.
Technical Details:
Queueing delay is drain time. Once bytes are already sitting in the buffer, the queue can empty only as fast as the bottleneck egress rate allows. The calculator therefore treats buffer size as stored bytes, link rate as bits per second, and delay as the time needed to transmit the queued bits.
That simple relation is also why shaped links can expose bufferbloat. A buffer sized for a fast physical port can become too deep after traffic is shaped to a lower WAN, VPN, or provider handoff rate. When the queue fills, other packets sharing that egress path wait behind the stored bytes and see added latency.
Formula Core:
The primary equation converts the selected buffer to bits and divides by the selected link rate. The occupancy estimate uses the same full-buffer delay, scaled by the average filled share entered by the user.
| Quantity | Meaning | Unit handling |
|---|---|---|
Buffer size |
Configured queue depth that can fill before packets are dropped or marked. | KiB, MiB, and GiB use powers of 1024; MB uses powers of 1000. |
Link rate |
Sustained bottleneck rate that drains the queue. | Kbps, Mbps, and Gbps are decimal bits per second. |
Delay target |
Maximum queueing delay you are willing to allow when the queue is occupied. | Milliseconds. |
Average occupancy |
Expected filled share during busy periods. | 0% to 100%. |
Baseline RTT |
Round-trip time used to compare the buffer with a BDP reference. | Milliseconds; 0 disables the BDP ratio. |
Packet size |
Representative packet or MTU size for packet depth and serialization time. | At least 64 bytes. |
The status badge is driven by the full-buffer delay first. A queue that takes more than twice the target to drain receives the highest risk label. A queue that is above the target but not above twice the target receives a trim warning. If the full-buffer delay is inside the target, the occupancy-weighted estimate is still useful for busy-period planning, but it does not make a too-deep buffer disappear.
| Condition | Summary title | Badge | Planning meaning |
|---|---|---|---|
Full delay > 2 x target |
Full queue exceeds target | high bufferbloat risk | The queue is deep enough to add much more latency than the selected budget allows. |
Full delay > target |
Full queue crosses target | trim buffer | The configured queue is larger than the current delay ceiling permits. |
Busy delay > target |
Busy queue crosses target | watch occupancy | The average fill assumption is the value to check against real queue telemetry. |
Delay inside target |
Queue delay inside target | inside target | The selected buffer and rate stay within the chosen full-queue delay budget. |
The tuning table repeats the target-buffer calculation for common delay ceilings of 5, 10, 20, 50, 100, and 200 ms, plus the custom target when it is different. For each ceiling, it reports the allowed buffer, the current margin, and either spare capacity or the amount that would need to be trimmed. Target reserve adds optional slack to the target-buffer readout when device queue granularity cannot hit the exact byte count.
The delay curve plots buffer size against full-buffer and occupancy-weighted delay. It is a planning curve, not a traffic capture. Use it to see how quickly delay rises when buffer size increases or link rate falls, then validate the final setting with queue telemetry, loaded latency, or a controlled throughput test.
Everyday Use & Decision Guide:
Start with the rate that really drains the queue. On a shaped WAN, the shaper rate is usually more useful than the physical port speed. On a virtual router, tunnel endpoint, or firewall, use the sustained policy or appliance limit if that is lower than the interface rate. A buffer that is acceptable at 1 Gbps can add ten times as much delay when the same queue drains at 100 Mbps.
Choose the delay target from the traffic you need to protect. Interactive traffic usually needs a tighter target than bulk transfer traffic. A 5 to 20 ms target is useful when the queue sits in front of voice, gaming, remote access, or control-plane paths. A 50 to 100 ms target may be acceptable for less sensitive backup or batch queues, but it should still be checked against the user's latency expectation.
- Use 100% occupancy for a worst-case tail-drop queue or when you want to know the full drain time.
- Use a lower occupancy value only when telemetry shows the queue normally runs below full during busy periods.
- Set
Baseline RTTwhen you want to compare queue depth with a path BDP reference. - Set
Packet sizeto the dominant packet or MTU size when packet count and serialization time matter. - Use
Target buffer reservewhen hardware or software queue settings are available only in coarse steps.
The fastest sanity check is the summary line. It states the configured buffer, the link rate, the full-buffer drain time, the ratio to the target, and the occupancy-weighted estimate. If the ratio is far above 1, a full queue adds more latency than the selected budget permits. If the ratio is below 1, the queue fits the chosen full-buffer target.
Treat the export buttons as documentation aids. The budget and tuning tables can be copied or downloaded as CSV or DOCX, the delay curve can be saved as an image or CSV, and the JSON view captures the exact input and output values for tickets, change records, or lab notes.
Step-by-Step Guide:
- Enter
Buffer sizeand choose the matching unit. Use the queue depth for the bottleneck egress, not an unrelated memory pool. - Enter
Link rateas the sustained rate that drains the queue. For shaped traffic, use the shaper rate. - Set
Delay targetto the maximum queueing delay you want to tolerate when the queue is occupied. - Set
Average occupancy. Use 100% for worst-case planning or a measured busy-period fill percentage when you have reliable telemetry. - Open Advanced when you need more context. Add
Baseline RTTfor the BDP comparison,Packet sizefor packet depth and serialization time, andTarget buffer reservewhen settings need slack. - Read
Queue Delay Budgetfirst. Check full-buffer delay, occupancy-weighted delay, target buffer size, target margin, occupancy cap, packet serialization time, and BDP comparison. - Open
Buffer Tuning Tableto compare the current buffer against common delay ceilings. Use the row nearest your service target as the proposed sizing line. - Open
Buffer Delay Curvewhen you need to show how delay changes as buffer size changes. Export the chart or JSON only after the inputs match the queue you intend to discuss.
Interpreting Results:
Full-buffer drain delay is the worst-case queueing delay for the selected buffer and rate. It is the number to compare with a strict latency budget because it assumes the queue is full. Occupancy-weighted delay answers a softer question: what delay would the same queue add if the busy-period fill averaged the entered percentage?
Target buffer for delay turns the delay target back into bytes. If the current buffer is larger than that byte count, the current full queue cannot meet the target at the selected rate. If it is smaller, the queue has spare room against the target. The Occupancy cap for target row shows how full the queue can be, on average, before the selected target is crossed.
| Output | Read it as | Useful follow-up |
|---|---|---|
Buffer margin vs target |
How many bytes the current buffer sits above or below the exact target buffer. | Trim the configured queue or raise the target only if the service can tolerate the added delay. |
BDP comparison |
How the queue size compares with rate multiplied by baseline RTT. | A queue many times larger than BDP may add latency beyond normal path propagation. |
Packet serialization time |
How long one representative packet takes to leave the bottleneck link. | At very low rates, one packet can consume enough time to affect tight targets. |
Buffer Delay Curve |
How full-buffer and occupancy-weighted delay rise as buffer size increases. | Use the curve to choose a smaller queue step before changing production settings. |
Do not read an inside-target result as a complete quality guarantee. Packet scheduling, flow fairness, active queue management, Explicit Congestion Notification marking, packet loss, CPU limits, wireless retries, and competing traffic can still affect real latency. The calculation gives a queue-depth budget; operational validation still needs measured loaded latency and device counters.
Worked Examples:
Default WAN buffer that is much too deep
A 16 MiB queue draining at 100 Mbps takes about 1,342 ms to empty when full. With an 85% occupancy assumption, the busy-period estimate is about 1,141 ms. A 50 ms target allows only about 610 KiB of buffer at that rate, so the current buffer is roughly 26.8 times the target delay and should be treated as high bufferbloat risk for interactive traffic.
Small queue on a fast link
A 512 KiB queue at 1 Gbps drains in about 4.19 ms. With a 20 ms target, the target buffer is about 2.38 MiB, so the configured queue stays inside the full-buffer budget. If the average occupancy is 50%, the busy-period delay estimate is about 2.10 ms.
Slow shaper with a modest byte count
A 256 KiB queue may sound modest, but at 10 Mbps it drains in about 210 ms. A 50 ms target allows about 61 KiB, so the queue is over the selected target even before other path delay is considered. This is the kind of case where using the shaped rate instead of the physical port rate changes the decision.
BDP context for a path with 40 ms RTT
At 500 Mbps and 40 ms RTT, the BDP reference is about 2.38 MiB. If the queue is 8 MiB, the BDP comparison is about 3.36x. That does not prove the queue is wrong by itself, but it tells you the queue can hold several RTTs of traffic and should be checked against the service's loaded-latency budget.
FAQ:
Why does the same buffer add more delay on a slower link?
The buffer holds bytes, but the link drains bits per second. When the drain rate falls, the same stored byte count takes longer to leave the queue.
Should I enter port speed or shaper speed?
Use the sustained rate that drains the queue. If a WAN shaper, VPN policy, provider handoff, or virtual appliance limit is lower than the port speed, use that lower rate.
What does average occupancy change?
It changes the busy-period delay estimate and the plotted occupancy-weighted curve. It does not change the full-buffer drain delay, which remains the worst-case value for the selected buffer and rate.
Why is baseline RTT optional?
The main queue delay calculation does not need RTT. Baseline RTT is used for the BDP comparison, which helps show whether the configured queue is small or large compared with the path's normal in-flight byte demand.
Does a target reserve change the delay result?
No. Reserve changes the target-buffer readout by adding slack to the exact byte count implied by the delay target. Full-buffer delay is still calculated from the selected buffer and link rate.
Does the calculator test my network?
No. It models queue delay from the values you enter in the browser. It does not run a speed test, send packets to the target path, or inspect device counters.
Glossary:
- Queueing delay
- Waiting time added while packets sit in a queue before transmission.
- Bufferbloat
- Excessive buffering that can add high latency when a queue fills.
- Bottleneck link
- The egress rate that limits how fast the queued data can drain.
- BDP
- Bandwidth-delay product, the amount of data represented by rate multiplied by round-trip time.
- RTT
- Round-trip time, the time for a packet and its response to traverse the path.
- Serialization time
- The time needed to transmit one packet at the selected link rate.
- Occupancy
- The filled share of the queue during the busy period being modeled.
References:
- RFC 7567: IETF Recommendations Regarding Active Queue Management, Internet Engineering Task Force, July 2015.
- RFC 8290: The Flow Queue CoDel Packet Scheduler and Active Queue Management Algorithm, RFC Editor, January 2018.
- RFC 6349: Framework for TCP Throughput Testing, RFC Editor, August 2011.
- RFC 9331: The Explicit Congestion Notification Protocol for Low Latency, Low Loss, and Scalable Throughput, Internet Engineering Task Force, January 2023.