notes/iperf.md

103 lines
5.5 KiB
Markdown
Raw Normal View History

2022-05-07 22:12:11 +03:00
### iperf
**Совместимость iPerf и iPerf3**
Клиент и сервер совместимы, но нужно знать, что по умолчанию, рабочий порт для iPerf — 5001, для iPerf3 — 5201.
**Установка**
```bash
sudo apt install iperf
```
или
```bash
sudo apt install iperf3
```
Запускаем сервер:
```bash
iperf3 -s
```
На экране появится:
```
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
```
Сервер ждет запросов.
**Все ключи запуска iPerf**
**Общие для сервера и клиента:**
Ключ Описание
`-p` _Определить порт, на котором будет слушать сервер или отправлять запросы клиент_
`-f` ормат отчетов — kmgKMG (Kbits, Mbits, KBytes, MBytes, ...)_
`-i` _Задать интервал, в течение которого выполняется одна проверка_
`-F` _Указать файл, из которого будут взяты входные данные для запуска_
`-A` _Степень нагрузки на процессор_
`-B` _Указать, через какой сетевой интерфейс работать_
`-V` етализированные сообщения в консоли_
`-J` _Вывод в формате json_
`--logfile` _Весь вывод в отдельный лог-файл_
`-d` _Режим отладки (много сообщений)_
`-v` оказать версию программы_
`-h` _Вызвать справку по работе с программой_
**Для сервера:**
Ключ Описание
`-s` _Запустить iPerf в режиме сервера_
`-D` _Запустить как демона (как службу)_
`-I` _Указать pid-файл_
`-1` ринять запрос от одного клиента и завершить работу_
**Для клиента:**
Ключ Описание
`-c` _Запустить iPerf в режиме клиента_
`-u` _Отправлять UDP-пакеты_
`-b` ормат отчетов для bandwidth (средней скорости)_
`-t` _Количество секунд, в течение которых будет идти проверка скорости_
`-n` _Объем данных для проверки (применяется вместо времени -t)_
`-k` _Количество пакетов для проверки (вместо -t или -n)_
`-l` _Размер буфера записи/чтения для TCP (по-умолчанию 128K), размер пакета для UDP (по-умолчанию 1470)_
`-P` _Число параллельных запросов_
`-R` _Обратный режим — сервер отправляет, клиент принимает_
`-w` _Размер сетевого окна_
`-C` _Установить алгоритм управления перегрузкой TCP_
`-M` _Задать максимальный размер MTU_
`-4` _Работать только для IPv4_
`-6` _Работать только для IPv6_
`-Z` спользовать метод «нулевой копии» для отправки данных_
`-O` _Опустить первые n секунд_
`-T` _Задать префикс для каждой строки вывода_
Также самый свежий список ключей можно получить командой:
```bash
man iperf3
```
**Примеры использования iPerf**
_Рассмотрим некоторые команды запросов к серверу для проверки скорости соединения._
Использование UDP
```bash
iperf3 -c 192.168.0.15 -u
```
* сам сервер не нужно запускать в UDP-режиме, так как он принимает любые запросы.
Альтернативные порты
_Для этого необходимо сначала запустить сервер на нужном порту:_
```bash
iperf3 -s -p 443
```
* кстати, можно запустить несколько процессов iperf одновременно, которые будут слушать на разных портах.
* стоит не забывать про настройки брандмауэра. В данном примере понадобиться ввести команды `firewall-cmd --permanent --add-port=443/tcp и firewall-cmd --reload`.
Теперь можно запускать клиента:
```bash
iperf3 -c 192.168.0.15 -p 443
```
Проверка скорости в течение 30 секунд с интервалами по 2 секунды
```bash
iperf3 -c 192.168.0.15 -t 30 -i 2
```
Несколько параллельных запросов
```bash
iperf3 -c 192.168.0.15 -P 3
```
Отправляем на проверку 3 Гб данных
```bash
iperf3 -c 192.168.0.15 -n 3G
```