Skip to main content

MikroTik Bandwidth Calculator (Simple Queue, Burst, PCQ, FQ-CoDel)

Calculate Limit-At (CIR), Max-Limit (MIR), Burst, PCQ, and FQ-CoDel for RouterOS v7 with automated configuration script generation.

Input Parameters

Try Example:
Mbps
Mbps
%
%
%
s
%

Calculation Results

mode
simple
targetNormalized
192.168.88.0/24
targetType
cidr
users
30
activeUsers
15
headroomPct
95
totalDownMbps
95
totalUpMbps
38
totalDownRos
95M
totalUpRos
38M
burstOn
true
burstTimeSec
8
pcqTotalLimitKiB
2000
down
{"cirMbps":3.167,"maxMbps":6.333,"burstMbps":9.5,"thresholdMbps":4.75,"effectiveBurstDurationSec":4,"cirRos":"3167k","maxRos":"6333k","burstRos":"9500k","thresholdRos":"4750k"}
up
{"cirMbps":1.267,"maxMbps":2.533,"burstMbps":3.8,"thresholdMbps":1.9,"effectiveBurstDurationSec":4,"cirRos":"1267k","maxRos":"2533k","burstRos":"3800k","thresholdRos":"1900k"}
RouterOS Script
# =====================================================================
# InfraCalc.id — MikroTik Simple Queue + Burst | RouterOS v7
# Dibuat: 2026-11-06 | Target: 192.168.88.0/24 | Klien: 30
# Total shaping: 95M down / 38M up (headroom 95%)
# Tool: https://infracalc.web.id/id/tools/mikrotik-queue-calculator
# =====================================================================
# PENTING: queue tidak memproses trafik FastTrack. Nonaktifkan bila perlu:
# /ip firewall filter disable [find action=fasttrack-connection]

/queue simple
add name="ST-TOTAL" target=192.168.88.0/24 max-limit=38M/95M comment="InfraCalc.id - parent total bandwidth"

# Queue per klien: 192.168.88.2 s/d 192.168.88.31
{
  :local base [:toip "192.168.88.0"]
  :for i from=2 to=31 do={
    /queue simple add name=("ST-Client-" . $i) target=(($base + $i) . "/32") parent="ST-TOTAL" limit-at=1267k/3167k max-limit=2533k/6333k burst-limit=3800k/9500k burst-threshold=1900k/4750k burst-time=8s/8s comment="InfraCalc.id - client queue"
  }
}

# Verifikasi: /queue simple print stats  |  /queue tree print stats

How to Use This Tool

  1. Enter the target network in CIDR notation (e.g. 192.168.88.0/24) or an interface name (e.g. bridge-lan), along with your ISP Download/Upload speeds and total client count.
  2. Select the queue mode (Simple Queue + Burst, PCQ, or FQ-CoDel), active concurrency ratio, ISP shaping headroom percentage (95% recommended), and Burst settings.
  3. Review the computed Limit-At (CIR), Max-Limit (MIR), Burst-Limit, effective burst duration, and configuration warnings, then copy the RouterOS v7 script into your terminal.

Worked Example: Office 30 Clients (100/40 Mbps Simple Queue)

Computed example: A 100/40 Mbps ISP link with 95% headroom yields a parent queue of 95M down / 38M up. Across 30 clients (15 concurrent), each client receives CIR 3167k down / 1267k up, Max-Limit 6333k down / 2533k up, and Burst-Limit 9500k for an effective 4 seconds.

Example Input
{
  "target": "192.168.88.0/24",
  "down": 100,
  "up": 40,
  "users": 30,
  "concurrency": 50,
  "mode": "simple",
  "burstPct": 150,
  "thresholdPct": 75,
  "burstTime": 8,
  "headroom": 95,
  "startHost": 2,
  "parentName": "ST-TOTAL"
}
Calculated Output
mode:
simple
targetNormalized:
192.168.88.0/24
targetType:
cidr
users:
30
activeUsers:
15
headroomPct:
95
totalDownMbps:
95
totalUpMbps:
38
totalDownRos:
95M
totalUpRos:
38M
burstOn:
true
burstTimeSec:
8
pcqTotalLimitKiB:
2000
down:
{"cirMbps":3.167,"maxMbps":6.333,"burstMbps":9.5,"thresholdMbps":4.75,"effectiveBurstDurationSec":4,"cirRos":"3167k","maxRos":"6333k","burstRos":"9500k","thresholdRos":"4750k"}
up:
{"cirMbps":1.267,"maxMbps":2.533,"burstMbps":3.8,"thresholdMbps":1.9,"effectiveBurstDurationSec":4,"cirRos":"1267k","maxRos":"2533k","burstRos":"3800k","thresholdRos":"1900k"}

Core Concept & Engineering Notes

Bandwidth management in MikroTik RouterOS ensures fair link sharing across all clients while preventing bufferbloat—the latency spike that occurs when a single device saturates the upstream ISP modem queue. This calculator computes queue parameters across the three primary traffic-shaping strategies in RouterOS v7: per-client Simple Queues with Burst, Per Connection Queue (PCQ) for dynamic multi-user networks, and FQ-CoDel (Fair Queuing Controlled Delay) for modern low-latency packet scheduling. Under MikroTik's Hierarchical Token Bucket (HTB) scheduler, every child queue relies on two foundational rates: Limit-At (Committed Information Rate / CIR), which guarantees a minimum bandwidth floor during peak congestion, and Max-Limit (Maximum Information Rate / MIR), which caps a client's throughput when spare capacity is available on the parent queue. To take control of the bottleneck away from the ISP modem or ONT, the parent queue Max-Limit should always be shaped to 90%–95% (headroom) of the measured ISP line rate. MikroTik's token-bucket Burst mechanism temporarily allows a client to exceed Max-Limit up to Burst-Limit as long as the sliding-window average rate over Burst-Time remains below Burst-Threshold. The most common field misconfigurations are setting Burst-Threshold equal to or higher than Max-Limit—which prevents burst from ever triggering—and leaving IPv4 FastTrack enabled in the firewall filter table, which causes packets to bypass Simple Queues and global Queue Trees entirely.

How It Was Calculated (Formulas & Steps)

Frequently Asked Questions (FAQ)

Why must Limit-At (CIR) and Max-Limit (MIR) be configured separately in MikroTik?

Limit-At (CIR) is the guaranteed minimum bandwidth floor when the link is congested; the sum of all child Limit-At values must not exceed the parent Max-Limit. Max-Limit (MIR) is the ceiling a client can reach when spare parent bandwidth is available.

How is the effective Burst duration calculated in MikroTik?

MikroTik averages throughput over the Burst-Time sliding window. Starting from an idle state (0 bps) and pulling at full Burst-Limit, the effective burst duration before the window average hits Burst-Threshold is (Burst-Time × Burst-Threshold) ÷ Burst-Limit.

When should I choose PCQ or FQ-CoDel over per-IP Simple Queues?

Use per-IP Simple Queues when you need strict per-host CIR guarantees and per-IP traffic graphs (up to ~50–100 clients). Use PCQ on large DHCP/Hotspot subnets (hundreds of users) to minimize CPU load, or FQ-CoDel in RouterOS v7 to eliminate bufferbloat for gaming and VoIP with a single parent queue.

Why is my Simple Queue not limiting client traffic at all?

The most common cause is an active `action=fasttrack-connection` firewall filter rule. FastTracked packets bypass Simple Queues and `parent=global` Queue Trees completely. Disable the FastTrack rule or exclude your shaped subnets from FastTrack.

References & Notes

Last updated: Content Status: Draft (Pending Editorial Review)

Note: Results above are mathematical estimates based on standard formulas. Always verify against official vendor documentation and site conditions before production deployment.