Files
notes/iperf.md
2022-05-07 22:12:11 +03:00

103 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 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
```