Загрузка быстрая, так почему каждый щелчок кажется медленным?
Большая передача может идти на полной скорости, пока звонки и щелчки отстают. Измеряйте время туда и обратно, устойчивую скорость и задержку под нагрузкой как три отдельных вопроса.
Быстро скачать большой файл и затем ощущать каждый щелчок медленным — это не противоречие. Пропускная способность говорит, сколько может пройти за секунду; время туда и обратно говорит, сколько длится обмен, прежде чем произойдёт что-то полезное. Улучшение первого ничего не даёт второму, а второе — это то, что человек замечает при наборе, щелчках или разговоре. Измеряйте жалобу, а не соединение.
Быстрый файл, медленный щелчок: два разных числа
Массовая передача постоянно держит данные в движении, поэтому может сообщать здоровую скорость даже тогда, когда каждый отдельный запрос ждёт. Многие тесты открывают и несколько соединений сразу, что повышает суммарную цифру, пока один запрос остаётся медленным. Оба результата совместимы, а цитирование большего пользователю, который жалуется на задержку, — это путь к потере доверия.
Загрузка страницы — это цепочка небольших обменов: разрешение имён, установка соединения, запрос, ответ, а затем зависимые запросы. Каждый шаг снова платит за путь туда и обратно, поэтому маршрут с большой задержкой кажется медленным, даже когда пропускной способности в избытке.
Туннель добавляет собственный путь и обработку, и маршрут важнее надписи на карте. Два выхода в одной стране могут иметь очень разные пути к одной цели. Разницы в двадцать миллисекунд достаточно, чтобы изменить ощущение страницы, хотя цифру пропускной способности она почти не двигает. Поэтому выбор выхода должен следовать за выборкой задержки, а не за иконкой флага.
Измеряйте жалобу, а не соединение
Выберите измерение, которое соответствует фразе, сказанной пользователем. Медленной загрузке нужна устойчивая скорость в правильном направлении; прерывающемуся звонку нужна собственная статистика этого приложения; странице, которая медленно стартует, нужны времена разрешения имён и установки.
ping -c 20 10.60.0.5
curl -sS -o /dev/null -w 'ttfb=%{time_starttransfer} rate=%{speed_download}\n' https://files.plant.example/1gb.bin
iperf3 -c 10.60.0.5 -t 10 -P 4Первая команда даёт выборку времени туда и обратно до хоста, который отвечает предсказуемо, вторая сообщает время до первого байта и устойчивую скорость одного соединения, а третья измеряет суммарную пропускную способность четырьмя параллельными потоками. Запускайте их к одному и тому же пункту назначения в одно и то же время суток, потому что сравнение утренней выборки с вечерней даёт историю, а не измерение.
Держите пункт назначения неизменным, когда сравниваете выходы. Изменение и сервера, и туннеля превращает одну переменную в две, и результат не может сказать, что именно имело значение. Запускайте каждый выход как минимум трижды, потому что одиночная выборка часто попадает на смену маршрутизации или шумную минуту. Медиана полезнее лучшего случая.
Относитесь к ICMP как к подсказке, а не к ответу. Отвечающий хост может обрабатывать эхо-запросы по другому пути, чем тот, который использует ваше приложение, и один потерянный ответ не доказывает, что каждое приложение теряет пакеты.
Задержка под нагрузкой — это проблема очереди
Больше всего людей сбивает с толку картина, когда соединение кажется хорошим в простое и непригодным во время резервного копирования. Это очередь, а не пропускная способность. Насыщенный восходящий канал строит буфер перед каждым другим пакетом, поэтому нажатие клавиши ждёт за частью выгрузки.
ping -c 20 10.60.0.5 & iperf3 -c 10.60.0.5 -t 20 -R -b 20M
Первая команда снимает выборки задержки в фоне, пока вторая насыщает обратное направление. Если времена ping во время передачи подскакивают и затем восстанавливаются, вы воспроизвели bufferbloat, а не обнаружили неисправность маршрутизации. Исправление обычно — настройка управления очередью, более низкая фоновая скорость или перенос массовой передачи с интерактивного пути.
Снижение необязательного фонового трафика часто помогает больше, чем смена страны выхода. Это ещё и дешевле, обратимо и проверяется за минуту. Планируйте большие выгрузки вне рабочего времени, если очередью нельзя управлять, и ограничивайте их скорость, если они должны работать днём. Настройка управления очередью — лучшее исправление, когда роутер её поддерживает.
Измените одну вещь и сравнивайте сопоставимое с сопоставимым
При большой задержке в простое сравнивайте выходы, удерживая пункт назначения неизменным, затем сравните маршруты для лучшего кандидата. При низкой стабильной пропускной способности смотрите вместо этого на ёмкость, нагрузку сервера и обработку клиента, потому что это разные ограничения.
Запишите, что вы измеряли, против какого пункта назначения, в какое время и с какими настройками. Сравнение без этих четырёх фактов нельзя повторить, и следующий человек начнёт с нуля.
Затем соотнесите инструмент с утверждением в заявке. "Медленный интернет" — не измерение; "первый байт занял 900 ms до этого хоста, при этом пропускная способность была в порядке" — измерение, и оно указывает прямо на задержку, а не на пропускную способность.