Development site, not farwing.io. This build is 0.8.0-dev. The server image is ghcr.io/farwing-io/server:dev.

Benchmarks

Every number on this site, and how we got it.

Every speed claim is measured. See how.

Try the calculator

Test setup

RouteOregon, USA to Sydney, Australia, over a public cloud
Round trip139 ms
Path capacity11.8 Gbit/s
Packet lossNone, then 0.1%, 1% and 3%, added on the sending side
Compared withLinux TCP CUBIC and BBR, eight parallel BBR streams, HTTP, UDT, Tsunami and scp, on the same hosts and path. TCP was tuned for this path.
RunsThree runs per test. We show the median, with the fastest and slowest run beside it.
Streams20-second runs, memory to memory
Copies1 GiB and 10 GiB files, disk to disk, with a 5-minute limit and a 15-minute limit

Throughput, Oregon to Sydney

Mbit/s of useful data. 20-second runs, median of three, with the slowest and fastest run under it.

Added lossFarwing8 × TCP BBRTCP BBRTCP CUBICvs 8× BBRvs BBR
None11,498
10,837–11,536
10,828
10,816–10,992
4,152
4,036–4,179
3,249
3,054–3,707
1.0×2.7×
0.1%11,431
11,408–11,442
9,945
9,740–9,958
1,776
1,672–1,824
12
7.3–15
1.1×6.4×
1%11,274
11,206–11,351
8,993
7,853–9,285
1,403
1,040–1,573
1.5
1.4–2.1
1.2×8.0×
3%11,015
10,493–11,352
8,028
7,556–8,275
491
25–1,263
0.6
0.5–0.7
1.3×22×

Farwing ran with its default four lanes. 8 × TCP BBR is eight parallel BBR streams added together. The speed-ups are Farwing's median over the other tool's median, rounded down.

1 GiB copy, start of command to checked file

Same path as the throughput table, disk to disk. HTTP is a single TCP stream. UDT and Tsunami are UDP copy tools on the same hosts. Each run had a 5-minute limit to produce a complete, checked file.

Added lossFarwingFarwing, first copyHTTPUDTTsunamiscp
None2.3 s
2.1–2.3 s
16 s
14–17 s
4.0 s
3.8–4.3 s
23 s
22–24 s
5.0 s
5.0–5.4 s
82 s
80–96 s
0.1%2.3 s
2.3–2.4 s
62 s
52–73 s
stalled
68 s
65–69 s
91 s
54–92 s
stalled
1%4.1 s
2.4–5.3 s
stalled
stalled
266 s
265–277 s
stalled
stalled
3%4.7 s
3.4–6.1 s
stalled
stalled
stalled
stalled
stalled

"Farwing" is a repeat copy to a host Farwing has reached before. "Farwing, first copy" is a copy to a new host, timed from putting Farwing on that host to the checked file. Putting it there uses scp, which slows under loss like any TCP copy: where the first copy stalled, the time limit ran out before Farwing was on the host.

10 GiB copy

The same copy with a file ten times larger, and a 15-minute limit. scp and Tsunami were timed at 1 GiB only.

Added lossFarwingHTTPUDT
None9.0 s
8.8–9.1 s
20 s
20–32 s
191 s
190–206 s
0.1%12 s
9.7–13 s
stalled
681 s
670–681 s
1%12 s
11–13 s
stalled
stalled
3%13 s
12–14 s
stalled
stalled

"stalled" means the median run did not produce a complete file inside the time limit. A range that ends in "stalled" means the slowest run did not finish. Once a run stalled, that tool's other runs at that loss level were skipped. A tool that stalled on the 1 GiB copy is shown as stalled for the 10 GiB copy at that loss level: the larger file would not finish inside the time limit.

Test your own path.It sends test data only and writes nothing to disk.Not getting the speed you expect? Run the built-in speed check. It shows exactly what is holding your server back.
farwing bench user@host --size 5G