Как измерить сетевую задержку, потерю пакетов и джиттер в Linux
Если у вас возникли проблемы с качеством в вашей сети, вы можете изучить мониторинг вашей сети, чтобы получить какие-либо подсказки о проблемах. В этом случае пригодится инструмент под названием SmokePing. SmokePing — один из лучших инструментов визуализации сетевых задержек, доступных в Linux.
Для визуализации задержки SmokePing полагается на список других утилит зондирования (например, fping
, tcpping
и т. д.) для измерения сетевых задержек. Отдельные измерения, созданные этими утилитами зондирования, затем сохраняются локально в виде данных временных рядов. SmokePing использует эти данные для визуализации задержки, потери и джиттера пакетов за определенный период времени.
В этом руководстве я опишу, как измерить задержку в сети, потерю пакетов и джиттер с помощью SmokePing.
Если в вашей системе включен SELinux, SmokePing может работать неправильно. Поэтому обязательно отключите SELinux в своей системе. Чтобы отключить SELinux, отредактируйте /etc/selinux/config
следующим образом и перезагрузитесь.
$ sudo vi /etc/selinux/config
SELINUX=disable
Установите SmokePing в Linux
Чтобы установить SmokePing на Ubuntu или Debian, сделайте следующее:
$ sudo aptitude update
$ sudo aptitude install smokeping curl libauthen-radius-perl libnet-ldap-perl libnet-dns-perl libio-socket-ssl-perl libnet-telnet-perl libsocket6-perl libio-socket-inet6-perl apache2 sendmail
Чтобы установить SmokePing в Fedora, запустите:
$ sudo yum install smokeping
Настроить SmokePing
После того, как вы установили SmokePing, настройте его следующим образом.
$ sudo vi /etc/smokeping/config.d/General
cgiurl = http://ip_address_of_your_host/cgi-bin/smokeping.cgi
По умолчанию SmokePing измеряет сетевые задержки для локального хоста с помощью fping
. Вы можете настроить эти параметры по умолчанию по своему усмотрению (например, добавить дополнительные места назначения зондирования, изменить инструменты зондирования и т. д.). Читайте дальше, чтобы узнать, как настроить параметры SmokePing.
1. Настройте инструменты зондирования
Чтобы настроить инструменты зондирования для использования в SmokePing, отредактируйте следующее.
$ sudo vi /etc/smokeping/config.d/Probes
+ FPing
binary = /usr/bin/fping
offset = 50%
step = 60
timeout = 10
pings = 5
+ TCPPing
binary = /usr/bin/tcpping
forks = 5
offset = 50%
step = 60
timeout = 10
pings = 5
В приведенном выше примере я определяю два инструмента проверки: fping
и tcpping
. Первый использует пакеты ICMP для измерения задержек, а второй использует пакеты TCP. tcpping
полезен, когда узел назначения блокирует пакеты ICMP.
binary
: путь к заданному инструменту проверки.fork
: сколько процессов использовать для проверки.offset
: насколько различаются несколько одновременных тестов с точки зрения времени их запуска в течение заданного интервала времени.step
: продолжительность временного интервала (в секундах) для проверки.timeout
: значение тайм-аута, которое будет использоваться в данном инструменте проверки.-
pings
: сколько пингов должно быть отправлено в каждый временной интервал.
2. Настройте места назначения зондирования
Чтобы настроить список хостов назначения для проверки, отредактируйте следующее.
$ sudo vi /etc/smokeping/config.d/Targets
probe = FPing
menu = Latency
title = Latency Measurement
remark = SmokePing Latency Test.
+ Internal_Host
menu = Internal_Hosts
title = Cloud Latency Measurements
++ Home
title = Home
host = 192.168.1.6
++ Verizon_FIOS
title = Verizon FIOS
host = 10.0.0.4
++ Optimum
title = Optimum Online
host = 10.0.0.5
++ EC2
title = EC2 East
host = ec2-102-22-3-146.compute-1.amazonaws.com
++ Azure
title = Azure East
host = edgesrver.cloudapp.net
+ External_Router
menu = External_Routers
title = Cloud Latency Measurements
probe = TCPPing
++ Verizon_DSL
title = Verizon DSL
probe = TCPPing
host = 72.52.53.66
Вы можете настроить вышеуказанный файл по своему усмотрению. Для каждой цели зондирования (в разделе ++
) вы можете определить собственный инструмент зондирования для использования (например, probe=TCPPing
). Полный список инструментов зондирования, совместимых с SmokePing, см. в официальном источнике. Обратите внимание, что вам нужно будет установить все необходимые инструменты зондирования отдельно, если вы решите их использовать.
Всякий раз, когда вы меняете конфигурацию SmokePing, обязательно перезапустите SmokePing следующим образом.
В Ubuntu или Debian:
$ sudo /etc/init.d/smokeping restart
В Федоре:
$ sudo service smokeping restart
SmokePing может не перезапуститься, если существуют измерения, собранные на основе предыдущей конфигурации, а обновленная конфигурация несовместима с существующими измерениями. В этом случае вам нужно будет удалить ранее собранные измерения (расположенные в /var/lib/smokeping
), чтобы иметь возможность перезапустить SmokePing.
Вы можете просмотреть измерения задержки, визуализированные SmokePing, по адресу http://
. Эта веб-страница будет автоматически обновляться по мере накопления измерений задержки.