How to Diagnose and Fix Asymmetric Network Performance Issues
Practical, step-by-step network troubleshooting guide: baseline iperf3 bandwidth tests, mtr path diagnostics, MTU and VPN tuning, and when to involve ISPs for asymmetric network performance.
Drake Nguyen
Founder · System Architect
Introduction
This guide explains a practical, step-by-step approach to network troubleshooting focused on asymmetric performance, packet loss, and latency variation. It walks through baseline measurements, controlled throughput tests, path tracing, and targeted fixes so you can diagnose network issues between servers, cloud instances, or across VPN tunnels. The techniques below are applicable globally and aimed at system administrators, network engineers, and DevOps practitioners who need repeatable methods for diagnosing network performance issues.
Prerequisites
- Basic networking knowledge: latency, jitter, throughput, MTU, and packet loss.
- Root or administrator access to the systems involved in the tests.
- Installed tools: iperf3 (for iperf3 bandwidth test), mtr (for mtr network troubleshooting), and a CLI you can run traceroutes from.
- Two endpoints you control (for example a cloud VM and a bare-metal host) to run client/server tests.
Step 1 — Establish a Baseline
Start by measuring raw throughput and observing latency and packet loss. A baseline helps separate transient congestion from persistent asymmetry. For a high-speed link, aim to saturate the path with parallel streams so TCP behavior manifests consistently.
Using iperf3 for throughput testing
Run an iperf3 server on one endpoint and a client on the other to measure achievable throughput. Use parallel streams to reveal TCP limitations and to approximate real application loads.
# On the server
iperf3 -s
# On the client (example: 10 parallel streams, 60s)
iperf3 -c <server-ip> -P 10 -t 60
Use the iperf3 results to compare upload vs download performance, identify bandwidth bottlenecks, and test how throughput scales with more streams (iperf3 parallel streams throughput tuning).
Step 2 — Trace the Path and Watch for Loss
When throughput or latency is asymmetric, use path-tracing tools to find where packets are delayed or dropped. mtr combines traceroute and ping and is especially helpful for packet loss troubleshooting and network latency troubleshooting.
Run mtr in report mode
mtr -rwbzc100 <remote-ip>
Flags explained: -r for report mode, -w for wide output, -b shows both IPs and names, -z includes AS numbers where available, and -c100 runs 100 probes. Look for hops that show persistent loss or large RTT jumps; if loss starts at a hop and continues, the issue often lies at or beyond that router.
Step 3 — Narrow Down Root Causes
Common causes of upload/download asymmetry and degraded throughput include:
- TCP configuration and connection pooling differences (some clients use more download threads than upload threads).
- MTU issues causing fragmentation—especially across VPNs (WireGuard overhead can require a reduced MTU).
- Routing asymmetry or ISP/cloud provider traffic shaping and peering behavior.
- Congestion or per-flow limits on intermediate routers, and differences in reverse path quality.
Diagnose whether the asymmetry is due to the path (routing, peering) or endpoint configuration (MTU, TCP window scaling, CPU limits) by comparing iperf3 and mtr results from both directions.
Step 4 — Apply Targeted Fixes
-
Tune MTU for VPNs
If you see fragmentation or poor performance across a VPN, lower the MTU on the tunnel interface (WireGuard example):ip link set dev wg0 mtu 1400 # or, if needed ip link set dev wg0 mtu 1300Test different MTU values using iperf3 and mtr to find the optimal balance between fragmentation and overhead (how to fix MTU issues on WireGuard VPN).
-
Use controlled tests instead of public speed tests
Public speedtest-cli results can mislead because many services use different thread counts for download vs upload. Prefer iperf3 between endpoints you control (how to use iperf3 to test network throughput). -
Tune iperf3 parallel streams
If single-stream TCP is limited by congestion control or latency, increase-Pto use parallel streams and observe aggregate throughput. This helps diagnose TCP throughput issues with parallel streams and exposes whether latency or window scaling is limiting performance. -
Check routing and escalate when needed
If mtr shows loss on provider routers or routes differ between directions (routing asymmetry), contact the ISP or cloud provider and request a route review or peering optimization. Provide mtr reports and iperf3 logs to accelerate troubleshooting (upload slower than download server troubleshooting).
Step 5 — Re-test and Validate
After applying fixes, repeat iperf3 and mtr tests from both directions. Confirm that:
- Measured upload throughput is closer to download throughput.
- Packet loss in mtr has decreased or disappeared.
- Latency variation and jitter are reduced, and TCP throughput scales better with parallel streams.
Keep logs of before/after measurements so you can quantify improvement and revert changes if needed.
FAQs
What MTU should I use for WireGuard?
There is no universal value; many deployments work well with MTU between 1300 and 1400. Start at 1400 and lower incrementally while testing until fragmentation and throughput are acceptable.
How Netalith I use iperf3 to find bandwidth bottlenecks?
Run iperf3 from both directions using multiple values for -P and durations with -t. Compare single-stream vs multi-stream tests to determine if TCP settings or link capacity limit throughput (diagnose bandwidth bottlenecks between cloud instances).
Which mtr options help detect packet loss and latency spikes?
Use the report flags shown earlier: mtr -rwbzc100 <ip>. Increase probe count with -c to improve statistical confidence. Look for persistent loss and consistent RTT increases at specific hops.
What if upload is consistently slower than download?
Check TCP thread counts on testing tools, MTU and fragmentation, and run mtr in both directions to detect asymmetric routing. If intermediate hops show loss only in one direction, involve the provider for route or peering adjustments (troubleshoot network routing asymmetry between servers).
When should I contact my ISP or cloud provider?
If mtr shows loss or high latency on provider routers, or if route asymmetry persists after endpoint tuning, collect iperf3 output and mtr reports and open a support case asking for route optimization or traffic-shaping clarification.
Conclusion
Effective network troubleshooting relies on consistent measurement, bidirectional testing, and methodical elimination of variables. Use iperf3 for controlled bandwidth testing, mtr for path-level visibility, and adjust MTU or TCP tuning where appropriate. When the path beyond your control shows problems, supply clear measurements to your ISP or cloud provider to resolve peering or routing issues. Following these steps will shorten time spent diagnosing network performance issues and improve your ability to resolve asymmetric throughput and latency problems.
Tip: Always document test commands, timestamps, and output. Clear evidence speeds provider support and prevents repeated work when diagnosing intermittent network problems.