General list for discussing Bufferbloat
 help / color / mirror / Atom feed
* [Bloat] How can I tell if fq_codel is running?
@ 2019-07-30 22:34 Kenneth Porter
  2019-07-30 22:45 ` Stephen Hemminger
  0 siblings, 1 reply; 6+ messages in thread
From: Kenneth Porter @ 2019-07-30 22:34 UTC (permalink / raw)
  To: bloat

I'm running CentOS 7 on a Dell R230 as a small office router. It's on a 
slow ADSL link, 1.5 Mbps down and 150 kbps up. The kernel supports 
fq_codel, as does the tg3 driver used by the interfaces.

In the past I've run the Wondershaper script and now I'm hoping the new 
codel improves on that. I think it's installed but I don't see its name 
in a "tc show". Should I see it there? Is there additional setup I need 
to do?

The system seems responsive but I've been tasked with prioritizing the 
network for certain users. Before, I set up some buckets in the 
wondershaper for that. I'm now trying to figure out how that's supposed 
to work with codel, which is ostensibly "knob-free".

[root@saruman ~]# tc -s class show dev em2
class mq :1 root
  Sent 127961591021 bytes 412946653 pkt (dropped 0, overlimits 0 
requeues 2726)
  backlog 0b 0p requeues 2726
class mq :2 root
  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
  backlog 0b 0p requeues 0
class mq :3 root
  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
  backlog 0b 0p requeues 0
class mq :4 root
  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
  backlog 0b 0p requeues 0
class mq :5 root
  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
  backlog 0b 0p requeues 0
[root@saruman ~]# sysctl net.core.default_qdisc
net.core.default_qdisc = fq_codel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Bloat] How can I tell if fq_codel is running?
  2019-07-30 22:34 [Bloat] How can I tell if fq_codel is running? Kenneth Porter
@ 2019-07-30 22:45 ` Stephen Hemminger
  2019-07-30 22:58   ` Dave Taht
  2019-07-30 23:58   ` Kenneth Porter
  0 siblings, 2 replies; 6+ messages in thread
From: Stephen Hemminger @ 2019-07-30 22:45 UTC (permalink / raw)
  To: Kenneth Porter; +Cc: bloat

On Tue, 30 Jul 2019 15:34:21 -0700
Kenneth Porter <shiva@sewingwitch.com> wrote:

> I'm running CentOS 7 on a Dell R230 as a small office router. It's on a 
> slow ADSL link, 1.5 Mbps down and 150 kbps up. The kernel supports 
> fq_codel, as does the tg3 driver used by the interfaces.
> 
> In the past I've run the Wondershaper script and now I'm hoping the new 
> codel improves on that. I think it's installed but I don't see its name 
> in a "tc show". Should I see it there? Is there additional setup I need 
> to do?
> 
> The system seems responsive but I've been tasked with prioritizing the 
> network for certain users. Before, I set up some buckets in the 
> wondershaper for that. I'm now trying to figure out how that's supposed 
> to work with codel, which is ostensibly "knob-free".
> 
> [root@saruman ~]# tc -s class show dev em2
> class mq :1 root
>   Sent 127961591021 bytes 412946653 pkt (dropped 0, overlimits 0 
> requeues 2726)
>   backlog 0b 0p requeues 2726
> class mq :2 root
>   Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
>   backlog 0b 0p requeues 0
> class mq :3 root
>   Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
>   backlog 0b 0p requeues 0
> class mq :4 root
>   Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
>   backlog 0b 0p requeues 0
> class mq :5 root
>   Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
>   backlog 0b 0p requeues 0
> [root@saruman ~]# sysctl net.core.default_qdisc
> net.core.default_qdisc = fq_codel

Try:
root@OpenWrt:~# tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2 
qdisc mq 0: dev eth1 root 
qdisc fq_codel 0: dev eth1 parent :8 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth1 parent :7 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth1 parent :6 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth1 parent :5 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth1 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth1 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth1 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth1 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc mq 0: dev eth0 root 
qdisc fq_codel 0: dev eth0 parent :8 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth0 parent :7 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth0 parent :6 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth0 parent :5 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth0 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth0 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth0 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev eth0 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc noqueue 0: dev br-lan root refcnt 2 
qdisc noqueue 0: dev eth0.1 root refcnt 2 
qdisc noqueue 0: dev eth1.2 root refcnt 2 
qdisc mq 0: dev wlan1 root 
qdisc fq_codel 0: dev wlan1 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev wlan1 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev wlan1 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev wlan1 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc mq 0: dev wlan0 root 
qdisc fq_codel 0: dev wlan0 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev wlan0 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev wlan0 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc fq_codel 0: dev wlan0 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Bloat] How can I tell if fq_codel is running?
  2019-07-30 22:45 ` Stephen Hemminger
@ 2019-07-30 22:58   ` Dave Taht
  2019-07-31  0:01     ` Kenneth Porter
       [not found]     ` <E136E8699FCBCE46AB566940@192.168.1.16>
  2019-07-30 23:58   ` Kenneth Porter
  1 sibling, 2 replies; 6+ messages in thread
From: Dave Taht @ 2019-07-30 22:58 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Kenneth Porter, bloat

see also https://www.bufferbloat.net/projects/bloat/wiki/Wondershaper_Must_Die/

and https://github.com/tohojo/sqm-scripts

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Bloat] How can I tell if fq_codel is running?
  2019-07-30 22:45 ` Stephen Hemminger
  2019-07-30 22:58   ` Dave Taht
@ 2019-07-30 23:58   ` Kenneth Porter
  1 sibling, 0 replies; 6+ messages in thread
From: Kenneth Porter @ 2019-07-30 23:58 UTC (permalink / raw)
  To: bloat

--On Tuesday, July 30, 2019 4:45 PM -0700 Stephen Hemminger 
<stephen@networkplumber.org> wrote:

> Try:
> root@OpenWrt:~# tc qdisc show

Thanks, that revealed it:

[root@saruman ~]# tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2
qdisc mq 0: dev em1 root
qdisc fq_codel 0: dev em1 parent :1 limit 10240p flows 1024 quantum 1514 
target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc mq 0: dev em2 root
qdisc fq_codel 0: dev em2 parent :1 limit 10240p flows 1024 quantum 1514 
target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 0: dev idrac root refcnt 2 limit 10240p flows 1024 quantum 
1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 0: dev tun0 root refcnt 2 limit 10240p flows 1024 quantum 
1500 target 5.0ms interval 100.0ms memory_limit 32Mb ecn

(em1 is the internal LAN interface and em2 is the Internet side.)


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Bloat] How can I tell if fq_codel is running?
  2019-07-30 22:58   ` Dave Taht
@ 2019-07-31  0:01     ` Kenneth Porter
       [not found]     ` <E136E8699FCBCE46AB566940@192.168.1.16>
  1 sibling, 0 replies; 6+ messages in thread
From: Kenneth Porter @ 2019-07-31  0:01 UTC (permalink / raw)
  To: bloat

--On Tuesday, July 30, 2019 4:58 PM -0700 Dave Taht <dave.taht@gmail.com> 
wrote:

> see also
> https://www.bufferbloat.net/projects/bloat/wiki/Wondershaper_Must_Die/
>
> and https://github.com/tohojo/sqm-scripts

Coincidentally, I found sgm-scripts right after posting. What prereqs are 
there to using that? I'm poking through the code and it looks like it 
should work, although I don't know if the CentOS 7 kernel has cake.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Bloat] How can I tell if fq_codel is running?
       [not found]     ` <E136E8699FCBCE46AB566940@192.168.1.16>
@ 2019-07-31  0:13       ` Dave Taht
  0 siblings, 0 replies; 6+ messages in thread
From: Dave Taht @ 2019-07-31  0:13 UTC (permalink / raw)
  To: Kenneth Porter; +Cc: bloat

On Tue, Jul 30, 2019 at 5:01 PM Kenneth Porter <shiva@sewingwitch.com> wrote:
>
> --On Tuesday, July 30, 2019 4:58 PM -0700 Dave Taht <dave.taht@gmail.com>
> wrote:
>
> > see also
> > https://www.bufferbloat.net/projects/bloat/wiki/Wondershaper_Must_Die/
> >
> > and https://github.com/tohojo/sqm-scripts
>
> Coincidentally, I found sgm-scripts right after posting. What prereqs are
> there to using that? I'm poking through the code and it looks like it

I've lost track. u32, etc. You should have all the dependencies in
centos for the htb+fq_codel version to work.

> should work, although I don't know if the CentOS 7 kernel has cake.

What kernel is it? (uname -a)

Probably doesn't (linux 4.19). Out of tree build and related tc mods:

https://github.com/dtaht/sch_cake
https://github.com/dtaht/tc-adv

(or you can rebuild tc from iproute2 versions later than 4.19)

Tip of tree right now has preliminary "some congestion experienced"
(SCE) work in it. Don't turn it on unless you want to annoy cablelabs.

You don't really need sqm-scripts for cake, it's a  tc 1 liner for
outbound, 4 for inbound.

Regardless, you are in a world of hurt on these bandwidths, an
iptables firewall rule clamping mss may help also.

>
>
>
> _______________________________________________
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat



-- 

Dave Täht
CTO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-831-205-9740

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-07-31  0:13 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-30 22:34 [Bloat] How can I tell if fq_codel is running? Kenneth Porter
2019-07-30 22:45 ` Stephen Hemminger
2019-07-30 22:58   ` Dave Taht
2019-07-31  0:01     ` Kenneth Porter
     [not found]     ` <E136E8699FCBCE46AB566940@192.168.1.16>
2019-07-31  0:13       ` Dave Taht
2019-07-30 23:58   ` Kenneth Porter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox