Queue Buffer Delay Calculator
Calculate queueing delay from buffer depth and bottleneck rate, then compare occupancy and target buffer size with optional BDP context.{{ summaryTitle }} {{ summaryValue }} {{ summaryLine }} {{ badge.label }}{{ badge.value }}
| Budget metric | Value | Interpretation | Copy |
|---|---|---|---|
| {{ row.metric }} | {{ row.value }} | {{ row.note }} |
| Delay ceiling | Allowed buffer | Current margin | Tuning action | Copy |
|---|---|---|---|---|
| {{ row.ceiling }} | {{ row.allowedBuffer }} | {{ row.margin }} | {{ row.action }} |
Packets wait whenever traffic reaches a queue faster than the next link can transmit it. That waiting time is queueing delay. It is separate from propagation distance, DNS lookup, server processing, Wi-Fi retries, and packet serialization elsewhere on the path. A large unmanaged queue can make an otherwise fast connection feel slow under load.
Buffer depth is usually expressed in bytes while link rate is expressed in bits per second, so the conversion factor of eight matters. The same queue also creates different delay on different bottlenecks. One MiB contains 8,388,608 bits and takes about 8.39 ms to drain at 1 Gbps, 83.89 ms at 100 Mbps, and 838.86 ms at 10 Mbps.
| Drain rate | One MiB full-queue delay | Practical reading |
|---|---|---|
| 1 Gbps | 8.39 ms | Small but visible in a tight latency budget |
| 100 Mbps | 83.89 ms | Enough to affect interactive traffic |
| 10 Mbps | 838.86 ms | Severe delay if the queue fills |
The relevant drain rate is the bottleneck attached to the queue. A router may show a 1 Gbps port while its upload shaper drains at 35 Mbps. Using the port label for a queue behind that shaper would understate waiting time by more than an order of magnitude.
Full-buffer delay is an upper-bound planning case. Average occupancy can estimate a busy period, but a lower average should not hide what happens when bursts fill the queue. Active queue management and fair queueing aim to keep average queues short and share capacity more effectively; buffer size alone does not describe those algorithms.
A byte budget cannot diagnose an entire path. Jitter, loss, radio contention, CPU limits, modem behavior, scheduling, traffic bursts, and congestion at another hop may still dominate measured latency. Compare the calculated queue delay with an under-load latency test and device telemetry.
How to Use This Tool:
Enter the queue that can fill and the sustained rate that drains it, then compare the worst case with the delay budget for the traffic sharing that bottleneck.
- Set Buffer size and choose KiB, MiB, GiB, or decimal MB to match the device or policy value.
- Set Drain link rate to the real bottleneck in Kbps, Mbps, or Gbps. Use the shaper rate when that is where packets wait.
- Enter a Delay target and Busy-period occupancy. Use 100% occupancy for the full-queue worst case or a measured lower percentage for a supplementary busy-period estimate.
- Add Baseline RTT for bandwidth-delay product context, or a Representative packet size of at least 64 bytes for packet-depth and serialization estimates. Zero disables either optional comparison.
- Set Target buffer reserve only when the target byte count needs explicit configuration slack. The reserve increases the suggested bytes; it does not change the exact delay target.
- Read Full-buffer drain delay first. Then compare Exact target buffer, Occupancy at target, and the tuning table before changing a queue limit.
Interpreting Results:
Full-buffer drain delay is the time needed to transmit every stored bit through the selected bottleneck. If it exceeds the target, the queue cannot meet that target when full. Busy-period queue delay scales the same value by occupancy and is always less than or equal to the full-buffer value for valid occupancy from 0% through 100%.
Exact target buffer reverses the formula to show how many bytes match the selected delay. A positive buffer margin means the current queue is larger than that exact target; a negative margin means it is smaller. Occupancy at target is capped at 100% and shows how full the current queue can become before crossing the target.
The bandwidth-delay product comparison is context, not a universal buffer recommendation. Baseline round-trip time must represent the path and traffic of interest, and modern queue management often aims for a small average queue rather than a permanently full bandwidth-delay product.
Technical Details:
Queue drain delay follows directly from stored bits divided by transmitted bits per second. Binary buffer units use powers of 1024, decimal MB uses 1,000,000 bytes, and link units use decimal powers of 1,000.
Formula Core
The full-buffer calculation converts bytes to bits and seconds to milliseconds. Occupancy scales that upper bound linearly.
Solving the same identity for bytes produces the exact target buffer. Optional reserve is added after that exact target is found.
Buffer margin is current bytes minus exact target bytes, and delay ratio is full-buffer delay divided by the target. Optional path and packet context reuse the normalized link rate.
| Symbol | Meaning | Unit |
|---|---|---|
| B | Current queue buffer | bytes |
| R | Bottleneck drain rate | bits/second |
| o | Busy-period occupancy | percent |
| T | Selected queue-delay target | milliseconds |
| q | Target buffer reserve | percent |
| RTT | Optional baseline round-trip time | milliseconds |
| M | Optional representative packet size | bytes |
| N | Estimated packets that fit in the queue | count |
Rule Core
A full-buffer delay strictly greater than twice the target is High risk. A value greater than the target but no more than twice the target is Over target. Equality with the target is Inside target. Because valid occupancy cannot exceed 100%, busy-period delay cannot exceed full-buffer delay and does not create a separate reachable warning when the full-buffer value is inside target.
The tuning plan computes buffer sizes for 10, 25, 50, 100, and 200 ms using the same link rate. The occupancy curve evaluates 0%, 25%, 50%, 75%, and 100% of the selected queue. These are comparison points, not universal latency recommendations.
Worked Examples:
Large queue behind a 100 Mbps bottleneck
A 16 MiB queue contains 16,777,216 bytes. At 100 Mbps it takes about 1,342.18 ms to drain when full, or about 1,140.85 ms at 85% occupancy. Against a 50 ms target, the exact target buffer is 625,000 bytes, about 610.35 KiB. The current queue is roughly 26.84 times the target delay, so the result is high risk even before propagation, processing, and other path delays are added.
References:
- RFC 7567: IETF Recommendations Regarding Active Queue Management, Internet Engineering Task Force, July 2015.
- RFC 8289: Controlled Delay Active Queue Management, Internet Engineering Task Force, January 2018.