Поиск по сайту:

Как измерить сетевую задержку, потерю пакетов и джиттер в 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:///cgi-bin/smokeping.cgi. Эта веб-страница будет автоматически обновляться по мере накопления измерений задержки.

Статьи по данной тематике: