Bufferbloat is all wet? Bufferbloat is all wet? Stephen Hemminger Stephen Hemminger s t e p h e n @n e t w o r k p l u mb e r . o r g s t e p h e n @n e t w o r k p l u mb e r . o r g @n e t w o r k p l u mb e r @n e t w o r k p l u mb e r Linuxcon Europe Oct 2014
B u ff e r b l o a t B u ff e r b l o a t ● Wh Wh a t i s t h e p r o b l e m a t i s t h e p r o b l e m ● Wh Wh a t c a u s e s t h e p r o b l e m a t c a u s e s t h e p r o b l e m ● S S o l u t i o n s o l u t i o n s – D D e mo n s t r a t i o n e mo n s t r a t i o n ● C C u r r e n t s t a t u s u r r e n t s t a t u s – T T h e G o o d h e G o o d – T T h e B a d h e B a d – T T h e U g l y h e U g l y
S i g n s o f B u ff e r b l o a t S i g n s o f B u ff e r b l o a t ● Y Y o u mi g h t h a v e b u ff e r b l o a t i f o u mi g h t h a v e b u ff e r b l o a t i f – T T h r o u g h p u t h r o u g h p u t ● D D o w n l o a d 1 0 % o f a d v e r t i s e d o w n l o a d 1 0 % o f a d v e r t i s e d ● U U p l o a d d o e s n ' t w o r k p l o a d d o e s n ' t w o r k – L L a t e n c y a t e n c y ● l l a r g e ( > 2 0 0 ms ) a r g e ( > 2 0 0 ms ) ● V V a r i a b l e a r i a b l e – A A n d n o p a c k e t l o s s ! ! ! n d n o p a c k e t l o s s ! ! !
H o w b a d i s i t ? H o w b a d i s i t ?
Q u e u i n g T h e o r y B a s i c s Q u e u i n g T h e o r y B a s i c s utilization se rv icerate av e ragetim einque ue = 1 − utilization From Fred Baker: Bufferbloat! Graphic courtesy Sprint, Apricot 2004
N e t w o r k P e r f o r ma n c e N e t w o r k P e r f o r ma n c e F a i r n e s s L a t e n c y T h r o u g h p u t R o u n d T r i p T i me M b i t s / s e c
N e t a l y z r : D o w n s t r e a m N e t a l y z r : D o w n s t r e a m
N e t a l y z r : U p s t r e a m N e t a l y z r : U p s t r e a m
C l a s s i c a l T C P C l a s s i c a l T C P
TCP throughput dynamics TCP throughput dynamics e ffe ctivewindow m e anthroughput = m e anroundtriptim e Increasing Measurable Throughput Bottleneck Capacity “knee” “cliff” Queue Depth Increasing TCP Window From Fred Baker: Bufferbloat!
B l a me L i n u x B l a me L i n u x ● Wi Wi n d o w s X P n d o w s X P – M M a x i mu m w i n d o w 6 4 k a x i mu m w i n d o w 6 4 k ● Wi n d o w s 7 Wi n d o w s 7 – B B a n d w i d t h l i mi t t o 8 0 mb i t s a n d w i d t h l i mi t t o 8 0 mb i t s ● A A n d r o i d n d r o i d – R R e c e i v e w i n d o w l i mi t e d e c e i v e w i n d o w l i mi t e d
B l a me t h e c u s t o me r B l a me t h e c u s t o me r ● C C u s t o me r s c a l l u s t o me r s c a l l s u p p o r t s u p p o r t ● A A p p l i c a t i o n s a r e p p l i c a t i o n s a r e u s i n g mo r e u s i n g mo r e b a n d w i d t h b a n d w i d t h ● B B l o c k a n d c h a r g e l o c k a n d c h a r g e
Back to Reality
B e n c h ma r k i s s u e s B e n c h ma r k i s s u e s ● B B a d a d – B B y t e s / s e c y t e s / s e c – P P a c k e s / s e c a c k e s / s e c – L L a t e n c y a t e n c y
R e a l t i me R e s p o n s e U n d e r L o a d R e a l t i me R e s p o n s e U n d e r L o a d ● U U s e e x i s t i n g t o o l s e e x i s t i n g t o o l – N N e t p e r f e t p e r f ● C C o mb i n e mu l t i p l e s t r e a ms o mb i n e mu l t i p l e s t r e a ms – D D o w n l o a d o w n l o a d – U U p l o a d p l o a d – L L a t e n c y me a s u r e me n t a t e n c y me a s u r e me n t
F I F O – t h e d e f a u l t F I F O – t h e d e f a u l t Ping 1sec! Upload Download Høiland-Jørgensen T., Battling Bufgerbloat
S t o c h a s t i c F a i r Q u e u e S t o c h a s t i c F a i r Q u e u e Høiland-Jørgensen T., Battling Bufgerbloat
C o n t r o l l e d D e l a y - c o d e l C o n t r o l l e d D e l a y - c o d e l Høiland-Jørgensen T., Battling Bufgerbloat
F a i r Q u e u e C o n t r o l l e d D e l a y F a i r Q u e u e C o n t r o l l e d D e l a y Høiland-Jørgensen T., Battling Bufgerbloat
B u ff e r b l o a t s t a t u s B u ff e r b l o a t s t a t u s
Wh e r e i s B u ff e r b l o a t ? Wh e r e i s B u ff e r b l o a t ? Receiver Sender Application Application TCP TCP QDisc Router Router Backbone ISP ISP
B u ff e r b l o a t S o l v e d ? B u ff e r b l o a t S o l v e d ? ● Q Q u e u i n g d i s c i p l i n e s u e u i n g d i s c i p l i n e s – C o d e l , P I E , . . . C o d e l , P I E , . . . ● L L i n u x i n t e r n a l i n u x i n t e r n a l – B Q L , F Q , P a c i n g B Q L , F Q , P a c i n g ● D D e f a u l t q d i s c e f a u l t q d i s c Sysctl -w sys.net.core.default_qdisc=fq_codel Sysctl -w sys.net.core.default_qdisc=fq_codel Y e s , ma n y t i me s o v e r Y e s , ma n y t i me s o v e r
B u ff e r b l o a t : T h e G o o d B u ff e r b l o a t : T h e G o o d ● I I n d u s t r y a w a r e n e s s n d u s t r y a w a r e n e s s ● S S t a n d a r d s p r o g r e s s t a n d a r d s p r o g r e s s ● A A c t i v e r e s e a r c h c t i v e r e s e a r c h ● O O p e n S o u r c e p e n S o u r c e S o l u t i o n s S o l u t i o n s
B u ff e r b l o a t : t h e B a d B u ff e r b l o a t : t h e B a d ● L L e g a c y e q u i p me n t e g a c y e q u i p me n t – O O E M f o c u s o n c o s t n o t A Q M E M f o c u s o n c o s t n o t A Q M ● C C o n g e s t i o n o n b a c k b o n e o n g e s t i o n o n b a c k b o n e – I I t ' s n o t a b u g i t ' s a f e a t u r e ? t ' s n o t a b u g i t ' s a f e a t u r e ? – P P r o b l e m i s p o l i t i c a l n o t t e c h n i c a l r o b l e m i s p o l i t i c a l n o t t e c h n i c a l
B u ff e r b l o a t : t h e U g l y B u ff e r b l o a t : t h e U g l y ● Wi Wi r e l e s s r e l e s s – A A g g r e g a t i o n g g r e g a t i o n – M M u l t i c a s t u l t i c a s t – P P r o p r i e t a r y fi r mw a r e r o p r i e t a r y fi r mw a r e
? Q u e s t i o n s Dave T<dave.taht@bufferbloat.net>
Thank you S t e p h e n H e mmi n g e r @n e t w o r k p l u mb e r s t e p h e n @n e t w o r k p l u mb e r . o r g
Bufferbloat resources Bufferbloat.net: http://bufferbloat.net Email Lists: http://lists.bufferbloat.net IRC Channel: #bufferbloat on chat.freenode.net CeroWrt: http://www.bufferbloat.net/projects/cerowrt Other talks: http://mirrors.bufferbloat.net/Talks Jim Gettys Blog – http://gettys.wordpress.com RRUL Test- https://github.com/tohojo/netperf-wrapper A big thanks to the bloat mailing list, Jim, Kathie, Van, and Eric, ISC, the C eroWrt contributors, OpenWrt, the Internet Civil Engineering Institute, and the Google Fiber for their interest and support in the work!
Recommend
More recommend