Задержка в сети — это время, которое требуется для передачи данных между вашим компьютером и удалённым сервером. Высокая задержка может приводить к медленному просмотру веб-страниц, задержкам в играх и сбоям в работе облачных сервисов. Если вы используете Linux, у вас уже есть полезные инструменты для измерения и мониторинга задержки в сети в реальном времени или в течение длительного периода.
В этой статье мы объясним, как:
ping
mtr
smokeping
Все инструменты бесплатны и доступны в большинстве дистрибутивов Linux.
Задержка обычно измеряется в миллисекундах (мс). Она представляет собой время, за которое небольшой пакет данных покидает ваш компьютер, достигает целевого сервера и возвращается обратно.
Общие значения задержки:
Самый простой способ проверить задержку — использовать команду ping
. Команда ping
отправляет пакеты ICMP Echo Request на целевой объект (например, веб-сайт или сервер) и измеряет время прохождения (RTT) — время, необходимое для получения ответа.
Команда ping
— это мощный инструмент для измерения задержки в сети в Linux. Анализируя минимальную/среднюю/максимальную задержку, потерю пакетов и дрожание, вы можете диагностировать проблемы с подключением.
Базовый пример:
ping google.com
Это многократно отправляет пакеты на google.com
.
Вы увидите результат, подобный:
PING google.com(maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e)) 56 data bytes 64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=1 ttl=59 time=16.1 ms 64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=2 ttl=59 time=17.3 ms
Приведенная выше команда будет выполняться до тех пор, пока вы вручную не остановите ее нажатием CTRL+C
.
Здесь,
time=16.1 ms
это задержка (в миллисекундах) для этого пакета.
Отправьте только 5 Пингов:
ping -c 5 google.com
Это отправляет 5 запросов на эхо-ответ в google.com
и останавливается. На выходе отображается задержка для каждого ответа.
PING google.com(maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e)) 56 data bytes 64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=1 ttl=59 time=15.4 ms 64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=2 ttl=59 time=16.3 ms 64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=3 ttl=59 time=17.2 ms 64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=4 ttl=59 time=18.2 ms 64 bytes from maa03s36-in-x0e.1e100.net (2404:6800:4007:814::200e): icmp_seq=5 ttl=59 time=69.2 ms --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 15.362/27.250/69.246/21.019 ms
Здесь,
time=15.4 ms
это задержка для каждого пакета.
Сводная статистика команды ping
--- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 15.362/27.250/69.246/21.019 ms
Статистика пакетной передачи:
5 packets transmitted
: было отправлено 5 пакетов ICMP-эхо-запроса.5 received
: Все 5 пакетов получили ответ (ICMP Echo Reply).0% packet loss
: Ни один пакет не был потерян (идеальные условия работы сети).time 4005ms
: Общее время, затраченное на тест (~ 4 секунды).
Статистика времени в пути туда и обратно (RTT):
Это показывает задержку (delay) в миллисекундах (мс).:
min
(15,362 мс): самое быстрое время отклика.avg
(27,250 мс): среднее время отклика (наиболее важно для общей задержки).max
(69,246 мс): самое медленное время отклика.mdev
(21,019 мс): среднее отклонение (измеряет джиттер — колебания задержки).
Согласно приведенной выше статистике, мы можем интерпретировать следующее:
mdev
или packet loss
, это признак нестабильности.
A. Предельное количество пингов (-c
)
ping -c 5 google.com # Отправляет только 5 пакетов
B. Изменить размер пакета (-s
)
ping -s 1000 google.com # Отправляет пакеты по 1000 байт
C. Более быстрые запросы (-i
)
ping -i 0,2 google.com # Отправляет запрос каждые 0,2 секунды
D. Регистрация временных меток (-D
)
ping -D google.com >> ping_log.txt # Журналы с отметками времени
E. Непрерывный пинг для мониторинга
ping google.com # Выполняется до тех пор, пока не будет остановлен вручную (Ctrl + C)
mtr
показывает, как пакеты перемещаются по сети. Сочетает в себе функции ping
и traceroute
. Для тех, кто не знает, mtr расшифровывается как My traceroute.
Вы можете использовать mtr
, когда;
Установите mtr
инструмент в вашу систему Linux с помощью команды:
sudo apt install mtr # Debian/Ubuntu sudo dnf install mtr # Fedora
Теперь проанализируйте задержку в сети с помощью команды:
mtr google.com
При этом отображается оперативная таблица переходов, задержек и потери пакетов.
Вы также можете сгенерировать отчет:
mtr -c 100 -r google.com > report.txt
Другие полезные опции:
-T
: используйте TCP вместо ICMP-u
: использовать UDP-c
: количество отправляемых пакетов
Для отслеживания задержек в прошлом используйте smokeping
. Он работает в фоновом режиме и сохраняет графики, которые вы можете просматривать в браузере. Обратите внимание, что для просмотра графиков этому инструменту требуется веб-сервер, например Apache или Nginx.
Копчение полезно для,
Для установки smokeping
в системах на базе Debian используйте следующую команду:
sudo apt install smokeping apache2
После установки отредактируйте целевой файл:
sudo nano /etc/smokeping/config.d/Targets
Добавьте раздел, подобный:
+ Google menu = Google DNS title = Google Ping host = 8.8.8.8
Перезапустите службу отслеживания дыма:
sudo systemctl restart smokeping
Затем откройте веб-браузер и перейдите по адресу http://localhost/smokeping.
Вы увидите графики задержки и потери пакетов.
Нажмите на каждую ссылку в левой панели, чтобы просмотреть соответствующий график.
Если результаты вашего пинга показывают высокую задержку или потерю пакетов, попробуйте следующие способы устранения неполадок:
ping google.com ping facebook.com
Если только на одном сайте наблюдается высокая задержка, проблема, скорее всего, на их стороне.
traceroute google.com # Показывает задержку каждого перехода
Высокая задержка на определенном этапе перехода? Это узкое место.
Обратитесь к своему провайдеру, если несколько сайтов имеют высокую задержку.
Измерить задержку сети в Linux несложно, если знать, какие инструменты использовать. Начните с ping
для быстрых тестов. Используйте mtr
для устранения неполадок на конкретных маршрутах. Разверните smokeping
для получения визуальных отчётов с течением времени.
С помощью этих инструментов вы можете:
На этом пока всё. Какие инструменты вы используете для измерения и мониторинга задержки в сети? Пожалуйста, поделитесь в комментариях ниже.