Чому проксі з малою затримкою все одно може повільно завантажувати файли
Затримка з’єднання та пропускна здатність завантаження вимірюють різні частини запиту через проксі. Обирайте тест під завдання.
Проксі, який швидко повертає маленьку сторінку, може повільно завантажувати файл. Перший запит показує переважно затримку встановлення з’єднання та відповіді. Більша передача залежить також від кількості даних, яку маршрут здатен передавати безперервно.
Який показник відповідає на ваше запитання?
| Завдання | Корисне спостереження |
|---|---|
| Відкрити маленьку сторінку або надіслати короткий запит API | Час до отримання відповіді, включно зі встановленням з’єднання. |
| Завантажити файл | Загальна кількість переданих байтів і середня швидкість передачі на відповідному тестовому файлі. |
| Зберігати швидкий відгук застосунку за багатьох запитів | Типовий час відповіді, збої та повторне використання з’єднань за очікуваного навантаження. |
ICMP ping — інший тест. Сервер може відповідати на ping, коли його служба проксі недоступна, або блокувати ping, поки проксі працює. Час проходження до адреси проксі й назад також не враховує з’єднання проксі з вашим цільовим сервером.
Виміряйте реальну передачу
Використовуйте файл на підконтрольному вам сервері або файл, призначений для таких тестів. Цей приклад відкидає тіло відповіді та виводить обсяг передачі, середню кількість байтів за секунду й загальний час:
curl --proxy http://203.0.113.10:8080 --noproxy '' --connect-timeout 5 --max-time 30 --silent --show-error --output /dev/null --write-out 'status=%{http_code} bytes=%{size_download} average_Bps=%{speed_download} seconds=%{time_total}\n' https://example.com/test-file.bin
Замініть і проксі з прикладу, і URL файлу. Сторінка 404 або відповідь із відмовою в доступі не є коректним тестом завантаження, навіть якщо приходить швидко. Перш ніж порівнювати швидкості, перевірте статус, очікуваний розмір файлу та вміст.
Поле середньої швидкості використовує байти за секунду. Мережевий тариф, рекламований у бітах за секунду, використовує іншу одиницю. Для приблизного переведення байтів у біти помножте на вісім; у всьому порівнянні дотримуйтеся однієї одиниці.
Порівнюйте за однакових умов
Використовуйте однакові цільовий сервер, файл, клієнтську мережу й налаштування тайм-аутів. Порівняйте кілька помірних проб замість вибору найшвидшої спроби. Для передач, що зависають, свідомо обирайте обмеження встановлення з’єднання, загального часу й низької швидкості. Залишайте невдалі запити в результатах: проксі, який іноді передає швидко, але часто дає збій, може не підійти для роботи, яку треба завершити.
Кешований файл і нове завантаження можуть проходити різними шляхами всередині служби. Це стосується й запиту після встановлення з’єднання порівняно із запитом, що повторно використовує наявне з’єднання. Визначте, яка поведінка потрібна застосунку, і послідовно вимірюйте її.
Обирайте під навантаження
Для маленької відповіді API зайва секунда до першого байта може важити більше за пікову швидкість передачі. Для великого завантаження швидке рукостискання з подальшим дуже повільним тілом — невигідний обмін. Для обох завдань тестуйте справжній цільовий сервер; однієї оцінки швидкості, що описує всі маршрути через проксі, немає.
Список проксі ProxyHub не надає незалежних вимірювань швидкості передачі для кожного IP. Фільтр за протоколом або країною — не рейтинг швидкості.