Эта заметка поможет протестировать стабильность, производительность и корректность работы сетевого интерфейса под нагрузкой: генерация пакетов, проверка драйверов, поиск ошибок и переполнений.
| Утилита | Назначение |
|---|---|
iperf3 | Точный замер пропускной способности между двумя узлами |
stress-ng --net | Генерация UDP/TCP-нагрузки локально или на удалённый хост |
netcat + dd | Простая передача данных "сырым" потоком |
pktgen | Ядерный генератор пакетов (максимальная нагрузка, требует root) |
tcpreplay | Воспроизведение захваченного трафика (pcap-файлов) |
# Debian/Ubuntu
sudo apt update
sudo apt install iperf3 stress-ng netcat-openbsd tcpreplay -y
# CentOS/RHEL/Fedora
sudo dnf install iperf3 stress-ng nmap-ncat tcpreplay -y
# Генерация UDP-трафика на localhost
stress-ng --net 4 --net-port 5001 --timeout 5m
# Или через netcat:
dd if=/dev/zero bs=1M count=1000 | nc -u 127.0.0.1 5001
# В другом терминале: nc -ul 5001 > /dev/null
— Проверяет обработку пакетов ядром, но не физическую карту.
На сервере:
iperf3 -s
На клиенте:
# TCP-тест
iperf3 -c 192.168.1.100 -t 300 -i 5
# UDP-тест (показывает потери!)
iperf3 -c 192.168.1.100 -u -b 1G -t 300
— Замеряет реальную пропускную способность и потери пакетов.
Требует загрузки модуля ядра и скрипта. Пример:
sudo modprobe pktgen
# Далее — запуск скрипта из /usr/src/linux/tools/net/... (редко используется)
— Генерирует миллионы пакетов в секунду. Подходит для тестирования high-performance сетей.
# Ошибки, переполнения, сброшенные пакеты
ethtool -S eth0
# Общая статистика
ip -s link show eth0
# Журнал ядра (ищи "rx errors", "tx timeout", "reset")
dmesg -T | grep -i "eth0\|error\|drop\|overrun"
# Температура (если поддерживается)
ethtool -d eth0 | grep -i temp
rx_missed_errors, rx_over_errors — переполнение буфераtx_timeout в dmesg — драйвер "завис"dropped в ip -s — нехватка ресурсов CPU или памятиethtool -S на физическом интерфейсе.# На клиенте (предполагается, что сервер слушает на 192.168.1.100:5201)
echo "Запуск UDP-стресса на 1 Гбит/с..."
iperf3 -c 192.168.1.100 -u -b 1G -t 600 -i 10
# После завершения — проверка ошибок
ethtool -S eth0 | grep -E "err|drop|over"
dmesg -T | tail -20
Комментарии
Пока нет комментариев. Будьте первым!