Skip to content

Network Bandwidth Testing Environments

Related Testing

For testing HTTP proxies, see HTTP Proxy Test Environments.

For testing SSL interception scenarios, see Network Test Environments: Packet-Inspection VPN Simulation.

This guide demonstrates how to simulate slow network connections for testing DDEV behavior under bandwidth-constrained conditions. This is useful for testing how DDEV performs in environments with limited internet connectivity, such as rural areas, mobile connections, or congested networks.

The setup involves:

  • Identifying your network interface
  • Installing network bandwidth limiting tools
  • Applying bandwidth restrictions
  • Testing DDEV operations under constrained conditions
  • Removing bandwidth limitations when testing is complete

Identify Your Network Interface

First, you need to identify which network interface you want to limit:

# List all network interfaces
ip link show

# Or use the older ifconfig command (if installed)
ifconfig -a

# Look for interfaces like:
# - eth0, enp7s0f1 (Ethernet)
# - wlan0, wlp3s0 (Wi-Fi)
# - docker0 (Docker bridge - avoid limiting this)

Common interface naming patterns:

  • Ethernet: eth0, enp7s0f1, eno1
  • Wi-Fi: wlan0, wlp3s0, wlo1
  • USB/Mobile: usb0, wwan0

Install Bandwidth Limiting Tools

Wondershaper Installation

Wondershaper is a simple bandwidth limiting tool that’s easy to use on Linux:

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install wondershaper

# CentOS/RHEL/Fedora
sudo dnf install wondershaper

# Arch Linux
yay -S wondershaper-git

Apply Bandwidth Limitations

Wondershaper Limits

Apply download and upload limits (values in kilobits per second):

# Basic usage: wondershaper -a <interface> -d <download_kbps> -u <upload_kbps>

# Simulate very slow connection (1 Mbps download)
sudo wondershaper -a enp7s0f1 -d 1024

# Simulate slow broadband (5 Mbps download)
sudo wondershaper -a enp7s0f1 -d 5120

# Simulate mobile connection (10 Mbps download)
sudo wondershaper -a enp7s0f1 -d 10240

# Remove all limitations
sudo wondershaper -a enp7s0f1 -c

Replace enp7s0f1 with your actual network interface name from step 1.

Remember to Remove Limits

Remember to remove bandwidth limitations after testing with sudo wondershaper -a <interface> -c to restore normal network performance.

Test DDEV Operations

With bandwidth limitations in place, test various DDEV operations:

# Cleanup before testing
ddev poweroff
ddev delete --omit-snapshot
docker builder prune
docker volume rm ddev-global-cache

# Test fresh DDEV startup
ddev config --webimage-extra-packages=htop --nodejs-version=18
DDEV_VERBOSE=true ddev start
# Open the logs to watch in another terminal:
ddev logs -f

# Force download of docker-compose binary
rm -f ~/.ddev/bin/docker-compose && DDEV_DEBUG=true ddev version

# Test composer operations
ddev composer install