Определение простыми словами
Throughput — это реальная скорость передачи полезных данных, которую вы получаете на канале или системе хранения. В отличие от bandwidth (теоретической пропускной способности), throughput учитывает накладные расходы заголовков TCP/IP, потери пакетов, ретрансмиты, время на handshake и ограничения железа. Канал на 1 Гбит/с в идеальных условиях даёт throughput около 940 Мбит/с в TCP-приёме на длинных дистанциях, и заметно меньше на коротких пакетах с большим RTT.
В системах хранения throughput измеряется в МБ/с — это поток данных при последовательном чтении или записи. Для оценки производительности случайного доступа используется отдельная метрика — IOPS. Реальный throughput зависит и от latency: при больших задержках TCP-окно заполняется медленнее, и канал не выходит на максимум.
Сравнение
| Метрика | Что измеряет | Единица | Влияет |
|---|---|---|---|
| Bandwidth | Теоретический максимум канала | бит/с | Тип среды и интерфейса |
| Throughput | Полезная скорость передачи | бит/с, МБ/с | Протоколы, потери, RTT |
| Latency | Задержка одного пакета | мс | Геолокация, оборудование |
| IOPS | Операций ввода-вывода в секунду | ops/s | Тип диска, размер блока |
Кейсы использования
- Оценка пригодности VPS для бэкапов — нужен throughput не ниже 100 МБ/с по сети и диску.
- Тестирование канала между двумя серверами через iperf3 перед запуском репликации БД.
- Подбор тарифа для стриминга и видеоконференций — throughput важнее, чем заявленные мегабиты.
- Сравнение SSD/NVMe-моделей — последовательное чтение vs запись.
- Негативный сценарий: провайдер пишет «канал 10 Гбит/с», а throughput до клиента в реальности 2 Гбит/с из-за переподписки и узкого аплинка. Проверять только нагрузочными тестами на разных направлениях.
Технические детали
Замер throughput канала через iperf3:
apt install iperf3
iperf3 -s -p 5201
iperf3 -c server.example.com -p 5201 -t 30 -P 4
iperf3 -c server.example.com -R -t 30
fio --name=write --filename=/tmp/test --size=4G --bs=1M --rw=write --direct=1 --numjobs=1
fio --name=read --filename=/tmp/test --size=4G --bs=1M --rw=read --direct=1 --numjobs=1
Параметр -P 4 запускает 4 параллельных потока — это снимает ограничение одного TCP-соединения. Флаг -R меняет направление на download. Для дисков fio с блоком 1M показывает последовательный throughput, мелкие блоки 4k дадут IOPS-картину.
🔥 Где это применяется
Частые вопросы
Чем throughput отличается от bandwidth?
Bandwidth — теоретический максимум канала или интерфейса. Throughput — фактическая полезная скорость с учётом накладных расходов протоколов, потерь пакетов и задержек.
Как замерить реальный throughput канала?
Самый показательный способ — iperf3 в параллельных потоках (флаг -P) на 30–60 секунд. Однопоточный тест часто упирается в TCP-окно и не показывает максимум канала.
Почему throughput SSD ниже заявленного?
Производитель указывает максимум при идеальных условиях: пустой накопитель, последовательное чтение, большой блок. На загруженном диске и в смешанной нагрузке throughput падает в разы.