notes/iperf.md

103 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

### 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
```