Buffer Bloat » Historique » Version 28
Laurent GUERBY, 15/02/2013 21:35
1 | 22 | Laurent GUERBY | {{>toc}} |
---|---|---|---|
2 | 22 | Laurent GUERBY | |
3 | 1 | Laurent GUERBY | h1. Buffer Bloat |
4 | 1 | Laurent GUERBY | |
5 | 1 | Laurent GUERBY | * http://bufferbloat.net |
6 | 21 | Jocelyn Dealande | * Bonne vulgarisation/explication du principe en Français : http://linuxfr.org/news/sortie-du-noyau-linux-3-3#toc_11 |
7 | 1 | Laurent GUERBY | * http://queue.acm.org/detail.cfm?id=2071893 |
8 | 12 | Laurent GUERBY | * via obinou change default queue : http://www.bufferbloat.net/issues/305 |
9 | 13 | Laurent GUERBY | * BSD Add the Enhanced Round Trip Time (ERTT) Khelp module to allow support for delay-based congestion control algorithms. http://caia.swin.edu.au/freebsd/5cc/ |
10 | 14 | Laurent GUERBY | * http://lwn.net/Articles/470641/ |
11 | 15 | Laurent GUERBY | * http://en.wikipedia.org/wiki/Datagram_Congestion_Control_Protocol |
12 | 19 | Laurent GUERBY | * http://netoptimizer.blogspot.com/2010/12/buffer-bloat-calculations.html |
13 | 19 | Laurent GUERBY | * http://gettys.wordpress.com/ |
14 | 20 | Laurent GUERBY | * pps from userspace http://info.iet.unipi.it/~luigi/netmap/ |
15 | 22 | Laurent GUERBY | * http://tech.slashdot.org/story/12/05/09/0325228/controlling-bufferbloat-with-queue-delay |
16 | 22 | Laurent GUERBY | * Controlling Queue Delay http://queue.acm.org/detail.cfm?id=2209336 |
17 | 22 | Laurent GUERBY | * http://www.readwriteweb.com/enterprise/2012/05/good-news-for-solving-bufferbloat-codel-provides-no-knobs-solution.php |
18 | 26 | Laurent GUERBY | ** The CoDel queue management algorithm https://lwn.net/Articles/496509/ |
19 | 22 | Laurent GUERBY | * http://www.cringely.com/2012/05/beginning-of-the-end-for-bufferbloat/ |
20 | 28 | Laurent GUERBY | * What's wrong with Wi-Fi? by Dave Täht http://www.youtube.com/watch?v=Wksh2DPHCDI&feature=youtu.be |
21 | 28 | Laurent GUERBY | ** minute 48 debug stats |
22 | 28 | Laurent GUERBY | * http://netseminar.stanford.edu/ |
23 | 2 | Laurent GUERBY | |
24 | 27 | Laurent GUERBY | h2. Conferences |
25 | 27 | Laurent GUERBY | |
26 | 27 | Laurent GUERBY | Tomas Hruby: |
27 | 27 | Laurent GUERBY | |
28 | 27 | Laurent GUERBY | http://linuxplumbers.ubicast.tv/videos/byte-queue-limits/ |
29 | 27 | Laurent GUERBY | |
30 | 27 | Laurent GUERBY | Eric Dumazet: |
31 | 27 | Laurent GUERBY | |
32 | 27 | Laurent GUERBY | http://linuxplumbers.ubicast.tv/videos/codel-and-fq_codel-fighting-the-delays/ |
33 | 27 | Laurent GUERBY | |
34 | 27 | Laurent GUERBY | |
35 | 27 | Laurent GUERBY | The whole conference: |
36 | 27 | Laurent GUERBY | |
37 | 27 | Laurent GUERBY | http://linuxplumbers.ubicast.tv/channels/#lpc-2012 |
38 | 27 | Laurent GUERBY | |
39 | 27 | Laurent GUERBY | |
40 | 2 | Laurent GUERBY | h2. QoS |
41 | 2 | Laurent GUERBY | |
42 | 2 | Laurent GUERBY | * tc qdisc par IP source |
43 | 2 | Laurent GUERBY | http://lists.tetalab.org/pipermail/tetaneutral/2011-April/000129.html |
44 | 1 | Laurent GUERBY | * ebtable packet flow chart http://ebtables.sourceforge.net/br_fw_ia/PacketFlow.png |
45 | 5 | Laurent GUERBY | * tc openwrt theory http://wiki.openwrt.org/doc/howto/tc/tc.theory |
46 | 4 | Laurent GUERBY | * tc openwrt howto http://wiki.openwrt.org/doc/howto/tc |
47 | 8 | Laurent GUERBY | * doc HTB http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm |
48 | 8 | Laurent GUERBY | * http://www.faqs.org/docs/Linux-HOWTO/ADSL-Bandwidth-Management-HOWTO.html |
49 | 9 | Laurent GUERBY | * [PATCH net-next] sch_red: Adaptative RED AQM http://www.spinics.net/lists/netdev/msg182750.html |
50 | 9 | Laurent GUERBY | * http://icir.org/floyd/papers/adaptiveRed.pdf |
51 | 17 | Laurent GUERBY | * QFQ http://info.iet.unipi.it/~luigi/qfq/ |
52 | 1 | Laurent GUERBY | * linklayer ADSL and overhead tc options http://git.coverfire.com/?p=linux-qos-scripts.git;a=blob;f=src-3tos.sh;hb=HEAD |
53 | 24 | Laurent GUERBY | * The QoS Emperor's Wardrobe http://www.potaroo.net/ispcol/2012-06/noqos.html |
54 | 6 | Laurent GUERBY | |
55 | 6 | Laurent GUERBY | Partage de bande passante ADSL |
56 | 6 | Laurent GUERBY | |
57 | 6 | Laurent GUERBY | <pre> |
58 | 7 | Laurent GUERBY | # Version du 20111207 |
59 | 6 | Laurent GUERBY | function do_qos { |
60 | 6 | Laurent GUERBY | tc qdisc add dev $DEV root handle 1: htb default 1 |
61 | 6 | Laurent GUERBY | tc class add dev $DEV parent 1: classid 1:1 htb rate $RATE |
62 | 1 | Laurent GUERBY | for IP in $IP_LIST; do |
63 | 7 | Laurent GUERBY | tc class add dev $DEV parent 1:1 classid 1:$IP htb rate 1kbit ceil $RATE |
64 | 6 | Laurent GUERBY | tc filter add dev $DEV protocol ip parent 1:0 prio 1 u32 match ip $DIR 91.224.148.$IP flowid 1:$IP |
65 | 6 | Laurent GUERBY | done |
66 | 6 | Laurent GUERBY | } |
67 | 6 | Laurent GUERBY | |
68 | 6 | Laurent GUERBY | DIR=dst #on gw then RATE= ADSL download speed |
69 | 6 | Laurent GUERBY | #DIR=src #on local machine then RATE= ADSL upload speed |
70 | 1 | Laurent GUERBY | |
71 | 6 | Laurent GUERBY | DEV=tapstg |
72 | 7 | Laurent GUERBY | RATE=11000kbit # src 700kbit |
73 | 6 | Laurent GUERBY | IP_LIST=$(seq 129 144) |
74 | 1 | Laurent GUERBY | do_qos |
75 | 6 | Laurent GUERBY | |
76 | 6 | Laurent GUERBY | DEV=tapthd |
77 | 7 | Laurent GUERBY | RATE=5500kbit # src TODO |
78 | 1 | Laurent GUERBY | IP_LIST=$(seq 194 207) |
79 | 6 | Laurent GUERBY | do_qos |
80 | 6 | Laurent GUERBY | |
81 | 6 | Laurent GUERBY | DEV=tapmon |
82 | 7 | Laurent GUERBY | RATE=480kbit # src 96kbit |
83 | 1 | Laurent GUERBY | IP_LIST=$(seq 114 115) |
84 | 1 | Laurent GUERBY | do_qos |
85 | 1 | Laurent GUERBY | |
86 | 7 | Laurent GUERBY | </pre> |
87 | 7 | Laurent GUERBY | |
88 | 7 | Laurent GUERBY | Pour supprimer un qdisc : |
89 | 7 | Laurent GUERBY | |
90 | 7 | Laurent GUERBY | <pre> |
91 | 7 | Laurent GUERBY | tc qdisc del dev tapxxx root |
92 | 7 | Laurent GUERBY | </pre> |
93 | 7 | Laurent GUERBY | |
94 | 7 | Laurent GUERBY | Pour afficher : |
95 | 7 | Laurent GUERBY | |
96 | 7 | Laurent GUERBY | <pre> |
97 | 7 | Laurent GUERBY | tc -p -s -d qdisc show dev tapxxx |
98 | 7 | Laurent GUERBY | tc -p -s -d class show dev tapxxx |
99 | 7 | Laurent GUERBY | tc -p -s -d filter show dev tapxxx |
100 | 6 | Laurent GUERBY | </pre> |
101 | 10 | Laurent GUERBY | |
102 | 10 | Laurent GUERBY | Documentation : |
103 | 10 | Laurent GUERBY | |
104 | 10 | Laurent GUERBY | <pre> |
105 | 10 | Laurent GUERBY | # tc qdisc add htb help |
106 | 10 | Laurent GUERBY | What is "help"? |
107 | 10 | Laurent GUERBY | Usage: ... qdisc add ... htb [default N] [r2q N] |
108 | 10 | Laurent GUERBY | default minor id of class to which unclassified packets are sent {0} |
109 | 10 | Laurent GUERBY | r2q DRR quantums are computed as rate in Bps/r2q {10} |
110 | 10 | Laurent GUERBY | debug string of 16 numbers each 0-3 {0} |
111 | 10 | Laurent GUERBY | |
112 | 10 | Laurent GUERBY | ... class add ... htb rate R1 [burst B1] [mpu B] [overhead O] |
113 | 10 | Laurent GUERBY | [prio P] [slot S] [pslot PS] |
114 | 10 | Laurent GUERBY | [ceil R2] [cburst B2] [mtu MTU] [quantum Q] |
115 | 10 | Laurent GUERBY | rate rate allocated to this class (class can still borrow) |
116 | 10 | Laurent GUERBY | burst max bytes burst which can be accumulated during idle period {computed} |
117 | 10 | Laurent GUERBY | mpu minimum packet size used in rate computations |
118 | 10 | Laurent GUERBY | overhead per-packet size overhead used in rate computations |
119 | 10 | Laurent GUERBY | linklay adapting to a linklayer e.g. atm |
120 | 10 | Laurent GUERBY | ceil definite upper class rate (no borrows) {rate} |
121 | 10 | Laurent GUERBY | cburst burst but for ceil {computed} |
122 | 10 | Laurent GUERBY | mtu max packet size we create rate map for {1600} |
123 | 10 | Laurent GUERBY | prio priority of leaf; lower are served first {0} |
124 | 10 | Laurent GUERBY | quantum how much bytes to serve from leaf at once {use r2q} |
125 | 10 | Laurent GUERBY | |
126 | 10 | Laurent GUERBY | TC HTB version 3.3 |
127 | 10 | Laurent GUERBY | </pre> |
128 | 23 | Laurent GUERBY | |
129 | 25 | Jocelyn Dealande | => Version basée sur le script ttnn incluant la v6 (même mode de calcul IPv4->IPv6 que ttnn) : http://orga.rhizome-fai.net/projects/rhizome-sysadmin/repository/entry/script/router/launchQoS |
130 | 25 | Jocelyn Dealande | |
131 | 23 | Laurent GUERBY | h2. ATM |
132 | 23 | Laurent GUERBY | |
133 | 23 | Laurent GUERBY | From: Sebastian Moeller <moeller0@gmx.de> |
134 | 23 | Laurent GUERBY | To: e-t172 <e-t172@akegroup.org> |
135 | 23 | Laurent GUERBY | Cc: lartc@vger.kernel.org |
136 | 23 | Laurent GUERBY | Subject: Re: tc htb + prio = very slow link |
137 | 23 | Laurent GUERBY | Date: Sun, 27 May 2012 22:46:50 -0700 (05/28/2012 07:46:50 AM) |
138 | 23 | Laurent GUERBY | Mailer: Apple Mail (2.1278) |
139 | 23 | Laurent GUERBY | |
140 | 23 | Laurent GUERBY | |
141 | 23 | Laurent GUERBY | Hi Etienne, |
142 | 23 | Laurent GUERBY | |
143 | 23 | Laurent GUERBY | while I have no real inside for your actual problem; but I do have to add something else. Back when I was using DSL I used the following addition to the definition of the root disc (for egress and ingress), to deal with the peculiarities of ATM based ADSL: |
144 | 23 | Laurent GUERBY | stab overhead 18 mtu 2048 mpu 53 linklayer atm |
145 | 23 | Laurent GUERBY | (there is a tc-stab manpage (http://manpages.ubuntu.com/manpages/precise/man8/tc-stab.8.html) to help you select the right value for overhead, mtu here only concerns the size table and not the interface mtu) |
146 | 23 | Laurent GUERBY | If your DSL connection uses an underlaying ATM carrier (most old DSL connections do to my knowledge) this will help a lot, as due to ATM small packages will often carry a lot of padding that eats considerable portions of you bandwidth. the stab invocation will not change that bandwidth use, but will take it into account while shaping from your root disc. Otherwise you will a) overload your DSL link in spite of your plan to avoid that and b) the system will think and report a lower used bandwidth than true. Note should you opt to take hub inbuilt link layer atm options see (http://kerneltrap.org/mailarchive/linux-netdev/2010/7/7/6280676) |
147 | 23 | Laurent GUERBY | Now some modern DSL variants do not use ATM as carrier anymore, notably some VDSL/VDSL2 use PTM-TC which does not have the same interesting structure as ATM (see http://www.ethernetinthefirstmile.com/articles/WTC2002.pdf) |
148 | 23 | Laurent GUERBY | Also if you use hub people typically seem to use hub children as well (http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm) so maybe that causes the issues you have (see http://linux.die.net/man/8/tc-htb for amore current overview of the parameters)? |
149 | 23 | Laurent GUERBY | |
150 | 23 | Laurent GUERBY | hoping this helps somewhat |
151 | 23 | Laurent GUERBY | Sebastian |