# iperf3 Network Speed Test

Tempest ships an **embedded iperf3** so you can measure server bandwidth, latency, and jitter without `apt install iperf3` on either end. Open the iperf3 panel inside any tab, point it at the host, and Tempest runs the TCP / UDP test natively — no client to install, no server-side dependency, just a chart in your terminal.

This is the fastest way to answer "is this slow because of the network or the app?" when you're already SSH'd into a box.

## Run a speed test

1. Open any SSH connection (or use Tempest's local shell).
2. Open the **iperf3** panel from the tab toolbar.
3. Choose direction:
   * **Download** (server → client) — most common
   * **Upload** (client → server)
   * **Bidirectional**
4. Optional: choose **TCP** (default, throughput) or **UDP** (latency / jitter / packet loss).
5. Set duration (default 10 s) and parallel streams.
6. Click **Run**.

The chart updates per-second; results panel shows aggregate throughput, retransmits (TCP), or jitter / loss (UDP).

## Native implementation

Tempest links iperf3 directly into the binary (Rust FFI to the upstream C library), so:

* **No install on the remote** — Tempest spins up an in-process iperf3 server when needed.
* **No install on your machine** — it's part of Tempest.
* Works on **macOS, Windows, and Linux** with identical behavior.

## When you'd use this

* Diagnosing slow `git clone` / `apt update` — is it the network or the registry?
* Validating a new VPS provider's advertised bandwidth before committing
* Comparing two cloud regions before deciding where to deploy
* Verifying a VPN / Tailscale / WireGuard tunnel is operating at line speed
* Pre-flight check before a large `rsync` job

## Limitations

* iperf3 measures end-to-end network throughput, not application performance. A `curl` against an HTTP API still depends on the server's ability to respond fast.
* UDP tests can be rate-limited by intermediate routers; treat results as a *lower bound*.

## See also

* [Tempest Monitoring](/productivity/tempest-monitoring.md) — live network I/O gauge for the same SSH session
* [SSH Port Forwarding](/connect-to-servers/ssh-port-forwarding.md) — tunnel iperf3 over an SSH connection if direct UDP is blocked


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gotempest.app/productivity/iperf3-network-speed-test.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
