Быстродействие · 3 мин чтения

Скорость прокси: как мы меряем задержку и почему ping врёт

Скорость прокси — это не одно число. Задержка, пропускная способность и время до первого байта меряют разные вещи, а сырой ICMP-ping вводит в заблуждение по всем трём. Объясняем, что действительно важно и как это измерять.

Скорость — это три разных числа

Задержка, пропускная способность и TTFB — не одно и то же.

Когда спрашивают «насколько быстрый этот прокси?», обычно имеют в виду что-то одно, а нужны три числа. Именно из-за этой путаницы прокси, который «быстро пингуется», в реальной работе всё равно кажется медленным.

  • Задержка — это время оборота для небольшого запроса: сколько проходит, прежде чем вернётся хоть что-то. Она определяет ощущение от интерактивной работы и от множества мелких запросов — вызовов API или переходов по страницам.
  • Пропускная способность — это сколько данных в секунду прокси способен передать, когда передача уже началась. Она решает для больших загрузок и тяжёлого скрапинга, и прокси с низкой задержкой вполне может иметь скверную пропускную способность.
  • Время до первого байта (TTFB) — это вся цепочка: DNS, рукопожатие соединения, ретрансляция вашего запроса через прокси, раздумья сервера назначения и приход первого байта. Это самое близкое одно число к тому, «как запрос ощущался на самом деле».

В большинстве задач с прокси значение имеют именно задержка и TTFB, потому что вы делаете много запросов, а не одну гигантскую загрузку. Это та колонка, которую мы показываем в списке бесплатных прокси, и именно её меряют скрипты ниже.

Метрики, которые действительно важны

И какую задачу предсказывает каждая из них.

Задержка (время оборота)

Пауза перед тем, как пойдёт ответ. Лучше всего предсказывает поведение на вызовах API, навигации и множестве мелких запросов. Именно низкая задержка делает прокси отзывчивым, а не вялым.

Пропускная способность (полоса)

Сколько данных в секунду идёт во время передачи. Лучше всего предсказывает крупные загрузки и массовый скрапинг. У прокси может быть низкая задержка и при этом узкая полоса, так что мерьте то, от чего зависит ваша задача.

Время до первого байта

Вся цепочка запроса вместе с рукопожатием и временем на раздумья сервера. Одно число, ближе всего к реальному ощущению, — именно его раскладывает по стадиям curl.

Стабильность

Один удачный замер ничего не доказывает. Прокси с приличным средним, но злыми выбросами будет стопорить ваши задачи. Мерьте несколько раз и смотрите на разброс, а не только на лучший случай.

Почему обычный ping врёт

ICMP делает не то, что делают ваши запросы.

Первый порыв — пингануть прокси и поверить цифре в миллисекундах. Она обманчива, и причины вполне конкретные. Ping работает по ICMP — это другой протокол, не тот TCP и TLS, которыми идёт ваш реальный трафик; сети регулярно дают ICMP приоритет, занижают его или блокируют вовсе, так что цифра пинга не отражает ни того, ни другого. К тому же ping меряет участок до прокси, а не весь путь через него до настоящего назначения — а важен именно он. И он полностью игнорирует то, что преобладает в реальных запросах: рукопожатие TCP, согласование TLS, разрешение DNS и время, которое тратит на ответ сам сервер назначения.

Честный способ измерить прокси — измерить реальный запрос через него, засекая стадии подключения и первого байта так, как их показывает curl. Это учитывает рукопожатие, ретрансляцию и назначение — всё, что ping выбрасывает. Именно так получены цифры задержки в нашем списке: в этом и смысл публиковать прозрачную методику, а не маркетинговое число.

Измерьте настоящую задержку прокси

Сохраните как proxy-latency.sh. curl показывает время подключения и время до первого байта — то, как запрос ощущается на самом деле, — а не обманчивый ICMP-пинг. Использование: bash proxy-latency.sh HOST:PORT

bash
#!/usr/bin/env bash
# proxy-latency.sh — measure REAL latency through a proxy, not ICMP ping.
# curl exposes connect + time-to-first-byte, which is what a request feels.
# Usage: bash proxy-latency.sh HOST:PORT [url] [runs]
PROXY="$1"
URL="${2:-https://api.ipify.org}"
N="${3:-5}"

fmt='connect=%{time_connect}s  ttfb=%{time_starttransfer}s  total=%{time_total}s\n'
echo "measuring $PROXY -> $URL ($N runs)"
for i in $(seq 1 "$N"); do
  curl -s -o /dev/null --max-time 10 \
       --socks5-hostname "$PROXY" \
       -w "$fmt" "$URL"
done

# Compare against no proxy to see the true added cost:
#   for i in $(seq 1 5); do curl -s -o /dev/null -w "$fmt" "$URL"; done

Как мерить прокси честно

Короткая методика, которую можно повторять.

Чтобы сравнивать прокси честно, зафиксируйте переменные. Тестируйте каждый прокси на одной и той же цели и из одной сети, прогоняйте каждый несколько раз и берите медиану, а не самый удачный замер, и обязательно меряйте базовую линию без прокси — иначе не поймёте, что добавил прокси, а что ваш собственный канал или сервер назначения. Расстояние — это физика: прокси, географически далёкий от вас или от цели, всегда добавит задержку, которую не уберёт ни один туннель, так что учитывайте расположение, а не вините прокси.

За цифрами s4m стоит та же дисциплина. Аутентифицированные прокси дата-центра сделаны ради стабильной работы с низкой задержкой, а колонка задержки в бесплатном списке считается по реальным запросам с таймингами, а не по ICMP. Нужно быстро проверить один прокси? Возьмите проверку прокси; нужно прогнать целый список вместе со скоростью — смотрите, как проверить работоспособность прокси.

FAQ

Ответы на вопросы

Почему пинг до прокси низкий, а работает он медленно?

Потому что ping меряет ICMP до прокси, а не ваш реальный трафик через него. Ваши запросы платят за рукопожатие TCP, TLS, DNS и время ответа сервера назначения — ничего из этого ping не видит. У прокси с отличным пингом вполне может быть медленное время до первого байта или узкая полоса, а чувствуете вы именно их.

Чем задержка отличается от пропускной способности прокси?

Задержка — это пауза перед тем, как пойдёт ответ; пропускная способность — сколько данных в секунду идёт, когда он уже пошёл. Задержка решает на множестве мелких запросов вроде вызовов API или постраничного скрапинга; пропускная способность — на крупных загрузках. Прокси может быть силён в одном и слаб в другом, так что мерьте то, что нужно вашей задаче.

Как правильно делать бенчмарк прокси?

Меряйте реальный запрос через него, а не ping. Засекайте стадии подключения и первого байта через curl, тестируйте на одной цели из одной сети, делайте несколько прогонов и берите медиану, а результат сравнивайте с базовой линией без прокси. Скрипт на bash выше делает ровно это.

Влияет ли расстояние до прокси на скорость?

Да, и никуда от этого не деться. Прокси, далёкий от вас или от вашей цели, добавляет время оборота, которое не уберёт никакая программа, — это физика. Сравнивая прокси, учитывайте расположение и выбирайте выход, географически разумный и для вас, и для сайта, к которому вы идёте.

Мерьте, а не гадайте

Делайте бенчмарк прокси так, как ведут себя настоящие запросы, — скриптом выше. Или начните с аутентифицированных прокси дата-центра, сделанных ради стабильно низкой задержки. Сначала проверьте один бесплатно в проверке прокси.

Эту страницу нашли по запросу

Реальные поисковые фразы, на которые отвечает эта страница — по ссылкам откроются материалы, раскрывающие тему глубже.