Категории

Стресс-тест сетевой карты в Linux

20.01.2026 | Статья из категории: Linux

Эта заметка поможет протестировать стабильность, производительность и корректность работы сетевого интерфейса под нагрузкой: генерация пакетов, проверка драйверов, поиск ошибок и переполнений.

⚠️ Внимание! Сетевой стресс может создать высокий трафик в локальной сети. Не запускайте без согласования в корпоративной или публичной сети!

Основные цели теста

Инструменты для генерации сетевой нагрузки

УтилитаНазначение
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

Сценарии тестирования

1. Быстрый локальный стресс (без второй машины)

# Генерация 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

— Проверяет обработку пакетов ядром, но не физическую карту.

2. Реальный сетевой стресс (требуется 2 машины)

На сервере:

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

— Замеряет реальную пропускную способность и потери пакетов.

3. Максимальная нагрузка через pktgen (только для экспертов)

Требует загрузки модуля ядра и скрипта. Пример:

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 или памяти

Особенности в виртуальной среде (Proxmox, KVM)

Пример: комплексный 10-минутный сетевой стресс

# На клиенте (предполагается, что сервер слушает на 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
🔒 Убедитесь, что коммутатор и кабель поддерживают заявленную скорость (1 Гбит/с, 10 Гбит/с). Иначе узкое место будет не в карте, а в инфраструктуре.

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Посетителей сегодня: 0


кто я | о блоге

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA