Prečo sa VPN pri nahrávaní zdá pomalá: oneskorenie vo fronte
Rýchly prenos môže aj tak spôsobiť zadrhávanie hovorov, keď pakety čakajú vo fronte. Porovnajte časy obrátky v pokoji a pod záťažou, kým obviníte koncový bod VPN.
Začne sa nahrávať záloha, počítadlo prenosu vyzerá zdravo a videohovor sa rozpadne. Linke nechýba šírka pásma v zmysle, ktorý to číslo naznačuje; pakety niekde čakajú vo fronte a interaktívne stoja za objemnými dátami. To je oneskorenie vo fronte, bežne nazývané bufferbloat. VPN môže pridať svoj vlastný front, ale problém sám vytvára len zriedka.
Šírka pásma a oneskorenie sú rôzne merania
Priechodnosť odpovedá, koľko dát sa prenesie za sekundu, kým oneskorenie odpovedá, ako dlho jednému paketu trvá prejsť cestou. Nasýtená linka môže držať veľký backlog a napriek tomu hlásiť dobrú priechodnosť, pretože front sa vyprázdňuje rýchlosťou linky, keď náraz skončí. Interaktívna prevádzka trpí prvá, lebo hovor potrebuje paket každých niekoľko milisekúnd, nie veľký súbor nakoniec. Meranie iba výsledku rýchlostného testu preto skrýva príznak, kvôli ktorému ste sa pozreli.
Všimnite si aj smer pod záťažou. Plný buffer na nahrávanie môže zdržať všetko ostatné, kým kapacita sťahovania stojí nečinne.
Zmerajte čas obrátky pod záťažou
Vezmite základnú líniu na pokojnej linke a potom ten istý test zopakujte, kým beží jeden riadený prenos. Porovnajte oba behy, nie absolútne čísla.
ping -c 20 -i 0.2 203.0.113.5
dd if=/dev/zero bs=1M count=50 | ssh [email protected] "cat > /dev/null"Prvý príkaz vzorkuje čas obrátky a druhý vytvára trvalé nahrávanie bez potreby služby na test rýchlosti. Základ, ktorý zostáva plochý, a potom zaťažený beh, ktorý stúpne o stovky milisekúnd, je podpis, ktorý hľadáte. Niektoré siete znižujú prioritu ICMP, takže ping berte ako stopu a potvrďte ho vlastným zobrazením latencie aplikácie. Držte test krátky na meraných linkách, pretože opakovateľný kontrast je dôležitejší než dlhé nasýtenie.
Presuňte front tam, kde je úzke hrdlo
Správa frontov pomáha len na zariadení, ktoré backlog skutočne drží. Pred pridaním pravidiel si pozrite, čo rozhranie robí.
tc -s qdisc show dev eth0
tc qdisc replace dev eth0 root fq_codelPríkaz show hlási aktuálnu disciplínu plus počítadlá backlogu a zahadzovania, čo vám povie, či je toto rozhranie úzkym hrdlom, alebo len prepúšťa prevádzku. Nahradenie koreňovej disciplíny algoritmom spravodlivého frontu dá krátkym tokom vlastné poradie namiesto jednej FIFO zdieľanej s objemnými dátami. Použite ho na WAN rozhraní routera, keď je router úzkym hrdlom, nie zo zvyku na tunelovom zariadení. Zachovajte predchádzajúcu konfiguráciu a znova otestujte odozvu pod záťažou aj prenosovú rýchlosť, pretože mierne nižšia hromadná rýchlosť je dobrá výmena za použiteľné hovory.
Čo tunel mení a čo skrýva
VPN pridáva šifrovanie a ďalší skok a tiež skrýva jednotlivé toky pred zariadeniami mimo tunela. To je dôležité, keď zariadenie vyššie v sieti ponúka prioritizáciu podľa aplikácie, pretože vidí šifrované pakety namiesto pôvodných rozhovorov. Router, ktorý tunel sám ukončuje, má iný pohľad a inú záťaž a môže klasifikovať vnútri neho. Ani jedno usporiadanie neodstraňuje front na prístupovej linke, kde sa oneskorenie zvyčajne hromadí.
Ak oneskorenie nenasleduje záťaž, prestaňte ladiť fronty a pozrite sa inde: podmienky Wi-Fi, problémy s veľkosťou paketov alebo jedna zlá výstupná cesta. Nastavenia frontov použité bez merania len presúvajú záhadu.