Skip to content
MikroTik RouterOS Docs

Speed Test

For the impatient: run a comprehensive speed test to another MikroTik router.

On the server router:

/tool/bandwidth-server/set enabled=yes authenticate=yes

On the client router:

/tool/speed-test 192.168.88.1 user=admin password=yourpass

What this does: The Speed Test tool performs a comprehensive network performance assessment between two MikroTik devices. It combines ping, jitter, and bandwidth measurements into a single command, running five sequential tests: ping/jitter, TCP download, TCP upload, UDP download, and UDP upload.

When to use this:

  • Quick overall network health check
  • Measure latency, jitter, and throughput in one command
  • Baseline network performance between sites
  • Compare TCP vs UDP performance
  • Troubleshoot connection quality issues

Prerequisites:

  • Bandwidth Test server enabled on the remote router
  • Network connectivity between client and server
  • Authentication credentials for the remote router
  • Firewall allowing TCP port 2000 (control) and test ports

How it differs from Bandwidth Test:

  • Speed Test runs multiple test types automatically in sequence
  • Provides ping and jitter measurements alongside throughput
  • Includes CPU load monitoring during tests
  • Single command for comprehensive results

CPU Impact

Speed Test is CPU-intensive. The tool runs multiple tests over approximately 55 seconds. Running tests can impact router performance and affect other traffic. Test during maintenance windows on production networks.

Speed Test uses the same server as Bandwidth Test. Enable it on the target router:

/tool/bandwidth-server/set enabled=yes authenticate=yes
/tool/bandwidth-server/print

Expected output:

enabled: yes
authenticate: yes
allocate-udp-ports-from: 2000
max-sessions: 100
/tool/speed-test 192.168.88.1 user=admin password=secret

The test runs for approximately 55 seconds, performing:

  1. Ping test (measures latency and jitter)
  2. TCP download test
  3. TCP upload test
  4. UDP download test
  5. UDP upload test

Control how long each test phase runs:

/tool/speed-test 192.168.88.1 user=admin password=secret test-duration=15s

Each of the five tests runs for the specified duration, plus 1-second pauses between tests.

Cap test speed to avoid saturating the link:

/tool/speed-test 192.168.88.1 user=admin password=secret \
local-tx-speed=100M remote-tx-speed=100M

Control parallel connections (affects throughput on high-latency links):

/tool/speed-test 192.168.88.1 user=admin password=secret connection-count=10

Default is 20 connections (or CPU core count if greater than 20).

Test specific directions only:

# Download only
/tool/speed-test 192.168.88.1 user=admin password=secret direction=receive
# Upload only
/tool/speed-test 192.168.88.1 user=admin password=secret direction=transmit
# Both (default)
/tool/speed-test 192.168.88.1 user=admin password=secret direction=both

A typical speed test produces output like:

status: done
ping: 5ms
ping-min: 4ms
ping-max: 8ms
jitter-avg: 1ms
jitter-min: 0ms
jitter-max: 3ms
packet-loss: 0%
tcp-download: 94.2Mbps
tcp-upload: 93.8Mbps
udp-download: 95.1Mbps
udp-upload: 94.7Mbps
tcp-download-cpu: 45%
tcp-upload-cpu: 42%
udp-download-cpu: 38%
udp-upload-cpu: 35%
FieldDescription
pingAverage round-trip time
ping-min / ping-maxMinimum and maximum ping times
jitter-avgAverage variation in ping times
jitter-min / jitter-maxMinimum and maximum jitter
packet-lossPercentage of ping packets lost
tcp-download / tcp-uploadTCP throughput rates
udp-download / udp-uploadUDP throughput rates
*-cpuCPU usage during each test phase
  • High jitter: May indicate network congestion or unstable links
  • Packet loss: Network congestion, bad cables, or interference (wireless)
  • TCP < UDP throughput: Normal; TCP has overhead for reliability
  • CPU at 100%: Results limited by router CPU, not network capacity
  • Asymmetric speeds: Check for QoS, link issues, or duplex mismatch

Test your ISP connection through a remote MikroTik:

/tool/speed-test remote-router.example.com user=admin password=secret \
test-duration=15s

Measure performance through a VPN tunnel:

/tool/speed-test 10.0.0.1 user=admin password=secret

Compare results with direct tests to measure VPN overhead.

Document network performance before making configuration changes:

# Before changes
/tool/speed-test 192.168.88.1 user=admin password=secret
# Make changes, then retest
/tool/speed-test 192.168.88.1 user=admin password=secret
  1. Open Tools > Speed Test
  2. Enter server address and credentials
  3. Click Start

Results display in real-time with graphs.

If speed test isn’t working, ensure firewall allows the required ports:

/ip/firewall/filter/add chain=input protocol=tcp dst-port=2000 action=accept \
comment="Speed Test/Bandwidth Test control"
/ip/firewall/filter/add chain=input protocol=udp dst-port=2000-2100 action=accept \
comment="Speed Test/Bandwidth Test UDP"

Place these rules before any drop rules.

/tool/bandwidth-server/print

Expected: enabled: yes

/tool/speed-test 127.0.0.1 user=admin password=secret test-duration=5s

Tests the server locally (useful for verifying server is running).

/tool/bandwidth-server/session/print

Shows currently running tests.

SymptomCauseSolution
”connection refused”Server disabled or firewalledEnable server; check firewall rules
”login failure”Wrong credentialsVerify username/password
Low throughputCPU bottleneckCheck CPU during test; test through device
High jitterNetwork congestionTest during off-peak; check for interference
Packet lossCongestion or link issuesCheck interface errors; verify cables
Test hangsFirewall blockingAllow TCP 2000 and UDP ports
”no route to host”Routing issueVerify connectivity with ping first
/system/resource/print

If CPU is consistently >80% during tests, results are CPU-limited.

/interface/print stats

Look for errors, drops, or FCS errors that indicate physical layer issues.

Common Mistakes

  • Testing on the device under test - Test through routers, not on them, for accurate results
  • Forgetting server setup - Speed test requires bandwidth-server enabled on remote
  • Ignoring CPU limits - 100% CPU means the router is the bottleneck, not the link
  • Testing during production hours - Can saturate links and affect users
  • Comparing UDP to TCP directly - Different protocols have different overhead
ParameterTypeDefaultDescription
addressIP/hostname-Server address (required)
userstring-Authentication username (required)
passwordstring-Authentication password (required)
test-durationtime10sDuration per test phase
directionreceive/transmit/bothbothTraffic direction
connection-countinteger20Parallel TCP connections
local-tx-speedrateunlimitedLimit local transmit rate
remote-tx-speedrateunlimitedLimit remote transmit rate
PortProtocolPurpose
2000TCPControl connection
2000+UDPUDP test traffic