# Imaging Speed Test for IVS Performance Verification

## What

When imaging Windows devices from a FileWave Image Virtualization Server (IVS), it’s important to ensure that data transfer speeds are optimal. Bottlenecks can occur if the IVS and client devices are on different subnets, or if network links between them are not operating at full capacity.

Two tools—<span class="s2">**iftop**</span> and <span class="s2">**iperf3**</span>—can help diagnose and measure network performance for imaging.

<p class="callout info">Note that if stunnel is enabled then there is some additional bandwidth used for the encrypted tunnel. You can [disable stunnel](https://kb.filewave.com/books/network-imaging-ivs/page/windows-imaging-in-filewave-secure-imaging-option-155 "Windows Imaging in FileWave 15.5+: Secure NFS Tunneling and Fallback Options") for better performance. </p>

## When/Why

You might use these tests when:

- Imaging feels slower than expected.
- Clients are located across multiple switches or VLANs.
- You want to validate performance before imaging large batches of devices.
- You need to confirm whether a slowdown is due to the network, the IVS, or client hardware.

## How

#### 1. Measuring Real-Time Traffic with iftop

<span class="s2">iftop</span> can show live network traffic on the IVS.

Install and run it on the IVS:

<p class="callout info">Note that in FileWave 16.2.0+ this is already installed on the IVS so you will not need to do the apt install command below.</p>

```
sudo apt install iftop
sudo iftop
```

[![image.png](https://kb.filewave.com/uploads/images/gallery/2025-08/scaled-1680-/kk5shrAnjlR2Qa0z-image.png)](https://kb.filewave.com/uploads/images/gallery/2025-08/kk5shrAnjlR2Qa0z-image.png)

The first column will be the server you are running iftop on. The second column will show you the devices connected so if I was imaging 152.32.183.31 then that would be the last entry on the screen and the first line is traffic TO that host and the second is traffic FROM that host as indicated by the arrows.

**Understanding the three traffic columns in iftop:**

- <span class="s1">**Left column:**</span> Average traffic rate over the last 2 seconds.
- <span class="s1">**Middle column:**</span> Average traffic rate over the last 10 seconds.
- <span class="s1">**Right column:**</span> Average traffic rate over the last 40 seconds.

You can use this to see per-client speeds during imaging and spot if a client is receiving data more slowly than others.

---

#### 2. Load Testing with iperf3

<span class="s1">iperf3</span> simulates network traffic to measure throughput between the IVS and a client device.

Install on the IVS:

<p class="callout info">Note that in FileWave 16.2.0 the IVS already installs iperf3 so you may not need to do the install and systemctl commands below.</p>

The second line below is only needed if you picked "No" to running iperf as a service and will set it to be a service.

```
sudo apt install iperf3
sudo systemctl enable --now iperf3
sudo ufw allow 5201/tcp
```

<p class="callout success">Note that [iperf3 listens on TCP 5201](https://kb.filewave.com/books/filewave-general-info/page/default-tcp-and-udp-port-usage "Default TCP and UDP Port Usage") so make sure that from your clients you can reach the IVS on that port and you don't have a firewall blocking that port.</p>

**On the client side (macOS, Windows, or Debian)**<span class="s1">:</span>

<span class="s1">As of FileWave 16.2.0 the IVS has iperf3 already included in the OS that boots on a client when PXE booting. To test you just need to put the IVS in debug mode and then boot a client to be imaged. In debug mode that client will boot to a unix shell instead of imaging or capturing. From there you can use the following command to test;</span>

<span class="s1">1. Enable debug on IVS;</span>

```bash
sudo touch /etc/fw_master_debug
sudo reboot
```

2\. Command to type on the PXE booted client when in debug;  
Note that in tbe below command the 5 is the number of connections and 30 is the duration to test. This would simulate 5 clients for 30 seconds. You can change the number and duration to do more extensive testing.

```bash
network-test 5 30
```

3\. Disable debug on IVS once you are done with testing;

```
sudo rm -f /etc/fw_master_debug
sudo reboot
```

<span class="s1">Other than testing via a client in debug mode you would need to first install iperf3. This can be found for Windows here: [https://iperf.fr/iperf-download.php](https://iperf.fr/iperf-download.php) and for Debian can be installed with "sudo apt install iperf3" and for macOS can be installed via [Homebrew](https://brew.sh/) with "brew install iperf3". On macOS many admins will already have Homebrew installed, but it can take a few minutes to install it if not.</span>

```
iperf3 -c <IVS_IP> -P <parallel_streams> -t <seconds>
```

- <span class="s1">&lt;IVS\_IP&gt;</span>: IP address of the IVS.
- <span class="s1">-P</span>: Number of parallel connections (e.g., <span class="s1">1</span> for a single client, <span class="s1">20</span> to simulate 20 machines).
- <span class="s1">-t</span>: Duration in seconds for the test.

Example:

```
iperf3 -c 192.168.1.50 -P 10 -t 30
```

Tests 10 parallel streams for 30 seconds.

---

#### 3. Bandwidth → MB/s Cheat Sheet

*(Real-world speeds will be ~10–15% less due to protocol overhead, duplex negotiation, etc.)*

<table border="1" id="bkmrk-network-speed-theore" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr><td>**Network Speed**

</td><td>**Theoretical MB/s**

</td><td>**Real-World MB/s (approx.)**

</td></tr><tr><td>1 Gb</td><td>125 MB/s</td><td>105-115 MB/s</td></tr><tr><td>2.5 Gb</td><td>312.5 MB/s</td><td>265-285 MB/s</td></tr><tr><td>5 Gb</td><td>625 MB/s</td><td>525-565 MB/s</td></tr><tr><td>10 Gb</td><td>1250 MB/s</td><td>1050-1150 MB/s</td></tr></tbody></table>

---

#### 4. Using Results to Predict Imaging Times

Once you know your average throughput from <span class="s1">iperf3</span>, you can estimate imaging time.

##### **Example 1: 1 Gb Network Connection**

- Image: <span class="s1">**10 GB**</span>
- Driver pack: <span class="s1">**3 GB**</span>
- Total data: <span class="s1">**13 GB**</span>
- <span class="s1">1 Gb link ≈ </span>**110 MB/s real-world**

**Calculation:**

13 GB ÷ 110 MB/s ≈ <span class="s1">**118 seconds**</span> (~2 minutes) per machine.  
For 10 machines (unicast), ≈ <span class="s1">**20 minutes**</span> (plus minor overhead).

##### **Example 2: 10 Gb Network Connection**

- Image: <span class="s1">**10 GB**</span>
- Driver pack: <span class="s1">**3 GB**</span>
- Total data: <span class="s1">**13 GB**</span>
- <span class="s1">10 Gb link ≈ </span>**1100 MB/s real-world**

**Calculation:**

13 GB ÷ 1100 MB/s ≈ <span class="s2">**12 seconds**</span> per machine.  
For 10 machines (unicast), ≈ <span class="s2">**2 minutes**</span> total.

---

#### Expected Imaging Times by Network Speed

*(Assumes 13 GB total image + drivers per machine, real-world throughput values, unicast imaging)*

<table border="1" id="bkmrk-network-speed-real-w" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 20%;"></col><col style="width: 20%;"></col><col style="width: 20%;"></col><col style="width: 20%;"></col><col style="width: 20%;"></col></colgroup><tbody><tr><td>**Network Speed**

</td><td>**Real-World Throughput**

</td><td>**1 Machine Time**

</td><td>**10 Machines Time**

</td><td>**20 Machines Time**

</td></tr><tr><td>1 Gb</td><td>~110 MB/s</td><td>~2 min</td><td>~20 min</td><td>~40 min</td></tr><tr><td>2.5 Gb</td><td>~275 MB/s</td><td>~47 sec</td><td>~8 min</td><td>~16 min</td></tr><tr><td>5 Gb</td><td>~550 MB/s</td><td>~24 sec</td><td>~4 min</td><td>~8 min</td></tr><tr><td>10 Gb</td><td>~1100 MB/s</td><td>~12 sec</td><td>~2 min</td><td>~4 min</td></tr></tbody></table>

**Additional Notes:**

- Always consider the slowest link: client NIC speed, switch port speed, uplinks between switches, and IVS NIC speed.
- Avoid hubs—always use switches.
- Different VLANs and routing hops may reduce performance.

## Related Content

- [Setting up the IVS (Imaging Virtual Server)](https://kb.filewave.com/books/network-imaging-ivs/page/setting-up-the-ivs-imaging-virtual-server "Setting up the IVS (Imaging Virtual Server)")
- [IVS Control Commands](https://kb.filewave.com/books/network-imaging-ivs/page/ivs-control-commands "IVS Control Commands")

## Digging Deeper

- You can combine <span class="s1">iftop</span> and <span class="s1">iperf3</span> results: run <span class="s1">iperf3</span> load tests while monitoring <span class="s1">iftop</span> to see how the IVS reports real-time speeds.
- For imaging 50+ devices, consider deploying a local IVS in each subnet to avoid bottlenecks.
- Remember that hard drives (HDD vs. SSD) in client devices also impact the *perceived* imaging speed—network speed is only one part of the chain.
- If speeds are significantly below expected values, investigate:
    
    
    - Duplex mismatches on switch ports.
    - Outdated NIC drivers on clients.
    - Oversubscribed uplinks between switches.

<div drawio-diagram="9984"><img src="https://kb.filewave.com/uploads/images/drawio/2025-08/UC9WJYYfW87SU3LE-drawing-6-1755179672.png" alt=""/></div>