NetLab jak pomalé to může být

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Jitter: proč je průměr k ničemu — a proč ani p99 nemusí stačit

Změřit latenci sítě a napsat „průměrně 120 µs“ je skoro k ničemu. Ne proto, že by to číslo bylo špatně, ale proto, že odpovídá na otázku, kterou nikdo nemá. Regulační smyčka se neptá, jak je to obvykle. Ptá se, jak zlé to může být.

rozdělení zpoždění (svisle logaritmicky)průměrp99p99,9maxprůměr108 µsp99128 µsp99,91195 µsnejhorší1272 µsOcas najde až:p99,9nejhorší případ je 12× průměrza deadline: 1.00 % cyklůZmenši výpadky a sleduj, jak percentil musí hlouběji.
Zmenšuj podíl výpadků a sleduj pravý sloupec: který percentil ten ocas ještě najde. Pod jedním procentem musí až na p99,9 — a pod desetinou procenta ho nenajde žádný.

Rozdělení má dvě části a průměr je mezi nimi

Skoro všechna měření sítě vypadají stejně: úzké tělo okolo nějaké hodnoty a řídký dlouhý ocas od front a od plných rámců, které se nedají přerušit. Průměr leží někde mezi — je vyšší než medián, protože ho ocas táhne nahoru, a přitom mnohem nižší než nejhorší případ. Popisuje stav, který skoro nikdy nenastane.

Tohle je nález, který vypadl z testů, ne z psaní: který percentil ocas odhalí, závisí na tom, jak často se to děje. Na měření s jedním procentem výpadků leží 99. percentil přesně na hraně těla a hlásí pohodlných 128 µs, zatímco nejhorší případ je desetkrát vyšší. Věta „měříme p99“ tedy není tvrzení o bezpečnosti, dokud se neřekne, jak často se ta špatná věc děje.

výpadkůocas najde ažp99nejhorší
20 %p901272 µs1316 µs
5 %p991195 µs1304 µs
1 %p99,9128 µs1272 µs
0,1 %žádný122 µs1183 µs

Ta tabulka je spočítaná, ne opsaná — testy v repu ji projíždějí a kontrolují, že je monotónní: čím vzácnější jev, tím hlouběji se musí jít, a pod nějakou vzácností už ho žádný běžný percentil nenajde a zbývá jen nejhorší naměřená hodnota.

Co z toho plyne pro měření

  1. Uvádět nejhorší případ, ne průměr. A říct, jak dlouho se měřilo — nejhorší hodnota z deseti sekund a z osmi hodin jsou dvě různá čísla.
  2. Měřit dost dlouho. Jev, který nastane jednou za deset tisíc cyklů, se v tisícovce vzorků neobjeví ani jednou. To neznamená, že tam není.
  3. Počítat zmeškané cykly, ne pravděpodobnost. „0,1 %“ zní zanedbatelně; „jeden zmeškaný cyklus za sekundu“ při 1 kHz je totéž číslo a zní správně.

Ten poslední bod je nejužitečnější trik z celé kapitoly. Pravděpodobnost se přepočte na četnost a rozhodování se tím zjednoduší.

Vzorce v této kapitole

p_n — percentil (nejbližší pořadí)
x_(⌈p·n/100⌉) [[t]] kap. 7