Изтеглянето ви е бързо, но защо всяко кликване изглежда бавно?
Голям трансфер може да върви с пълна скорост, докато разговорите и кликванията закъсняват. Измерете времето за двупосочно пътуване, устойчивата скорост и закъснението под натоварване като три отделни въпроса.
Бързото изтегляне на голям файл и усещането, че всяко кликване е бавно, не е противоречие. Капацитетът казва колко може да се движи за секунда; времето за двупосочно пътуване казва колко трае един обмен, преди да се случи нещо полезно. Подобряването на първото не прави нищо за второто, а второто е това, което човек забелязва, докато пише, кликва или говори. Измерете оплакването, а не връзката.
Бърз файл, бавно кликване: две различни числа
Големият трансфер държи данните в движение непрекъснато, затова може да показва здравословна скорост, дори когато всяка отделна заявка чака. Много бенчмаркове също отварят няколко връзки наведнъж, което вдига общата цифра, докато една заявка остава бавна. Двата резултата са съвместими и цитирането на по-високия пред потребител, който се оплаква от забавяне, е начинът да се загуби доверие.
Зареждането на страница е верига от малки обмени: разрешаване на имена, установяване на връзка, заявка, отговор, после зависими заявки. Всяка стъпка плаща пътуването отново, затова път с голямо закъснение изглежда бавен, дори когато има предостатъчно капацитет.
Тунелът добавя своето пътуване и обработка, а маршрутът има по-голямо значение от етикета на карта. Два изхода в една и съща държава могат да имат много различни пътища до една дестинация. Разлика от двадесет милисекунди е достатъчна, за да промени усещането на страницата, макар едва да помръдва числото на пропускателната способност. Затова изборът на изход трябва да следва извадка от закъснението, а не икона на флаг.
Измерете оплакването, а не връзката
Изберете измерването, което отговаря на изречението, което потребителят е казал. Бавното изтегляне се нуждае от устойчива скорост в правилната посока; закъсняващото обаждане се нуждае от собствените статистики на това приложение; страница, която стартира бавно, се нуждае от времената за разрешаване и установяване.
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 до този хост, докато пропускателната способност беше добра" е измерване и сочи директно към закъснение, а не към капацитет.