Hello Everyone!
Is there any way I can monitor the packet queue at my router? I am researching on a topic which requires me to monitor traffic load at my home router. I want to know details like queuing delay at different time and general things like how many packets are getting serviced at a particular time window.
hnyman
April 17, 2020, 3:30pm
#2
Depends on the qdisc you use.
You get something like this from "cake"
root@router1:~# tc -s qdisc show dev eth0.2
qdisc cake 8015: root refcnt 2 bandwidth 17Mbit besteffort triple-isolate nonat nowash no-ack-filter split-gso rtt 100.0ms raw overhead 0
Sent 506927851 bytes 2359105 pkt (dropped 9415, overlimits 1476683 requeues 0)
backlog 0b 0p requeues 0
memory used: 430592b of 4Mb
capacity estimate: 17Mbit
min/max network layer size: 42 / 1514
min/max overhead-adjusted size: 42 / 1514
average network hdr offset: 14
Tin 0
thresh 17Mbit
target 5.0ms
interval 100.0ms
pk_delay 942us
av_delay 48us
sp_delay 7us
backlog 0b
pkts 2368520
bytes 512981879
way_inds 40376
way_miss 21430
way_cols 0
drops 9415
marks 0
ack_drop 0
sp_flows 1
bk_flows 1
un_flows 0
max_len 20916
quantum 518
hnyman
April 17, 2020, 3:33pm
#3
If you are looking at generic high-level statistics, look at either
nlbwmon (and luci-app-nlbwmon)
LuCI statistics. There are different network statistics available via different collectd plugins. Like this:
@hnyman Thank you very much for your response!
Is there any package that can help me in monitoring every packet at a microsecond rate?
It would be very interesting for me to know processing time for every packet rather than the whole queue as a whole.
hnyman
April 19, 2020, 1:30pm
#5
You might read
oh boy, can open, worms all over the place. I can advise on some aspects of cake but not much else. The good news is that tc can output in json format which probably makes things easier in terms of not scraping screen output.
'tc -d qdisc show' will show basic config for all qdiscs on all interfaces and isn't particularly interesting/helpful
'tc -d qdisc show dev eth0' will do the same but for just the specified interface.
Adding a '-j' flag will return same output/s in json format.
The mo…