1*387f9dfdSAndroid Build Coastguard WorkerDemonstrations of netqtop. 2*387f9dfdSAndroid Build Coastguard Worker 3*387f9dfdSAndroid Build Coastguard Worker 4*387f9dfdSAndroid Build Coastguard Workernetqtop traces the kernel functions performing packet transmit (xmit_one) 5*387f9dfdSAndroid Build Coastguard Workerand packet receive (__netif_receive_skb_core) on data link layer. The tool 6*387f9dfdSAndroid Build Coastguard Workernot only traces every packet via a specified network interface, but also accounts 7*387f9dfdSAndroid Build Coastguard Workerthe PPS, BPS and average size of packets as well as packet amounts (categorized by 8*387f9dfdSAndroid Build Coastguard Workersize range) on sending and receiving direction respectively. Results are printed 9*387f9dfdSAndroid Build Coastguard Workeras tables, which can be used to understand traffic load allocation on each queue 10*387f9dfdSAndroid Build Coastguard Workerof interested network interface to see if it is balanced. And the overall performance 11*387f9dfdSAndroid Build Coastguard Workeris provided in the buttom. 12*387f9dfdSAndroid Build Coastguard Worker 13*387f9dfdSAndroid Build Coastguard WorkerFor example, suppose you want to know current traffic on lo, and print result 14*387f9dfdSAndroid Build Coastguard Workerevery second: 15*387f9dfdSAndroid Build Coastguard Worker# ./netqtop.py -n lo -i 1 16*387f9dfdSAndroid Build Coastguard WorkerThu Sep 10 11:28:39 2020 17*387f9dfdSAndroid Build Coastguard WorkerTX 18*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 19*387f9dfdSAndroid Build Coastguard Worker 0 88 0 9 0 0 0 20*387f9dfdSAndroid Build Coastguard Worker Total 88 0 9 0 0 0 21*387f9dfdSAndroid Build Coastguard Worker 22*387f9dfdSAndroid Build Coastguard WorkerRX 23*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 24*387f9dfdSAndroid Build Coastguard Worker 0 74 4 5 0 0 0 25*387f9dfdSAndroid Build Coastguard Worker Total 74 4 5 0 0 0 26*387f9dfdSAndroid Build Coastguard Worker---------------------------------------------------------------------------- 27*387f9dfdSAndroid Build Coastguard WorkerThu Sep 10 11:28:40 2020 28*387f9dfdSAndroid Build Coastguard WorkerTX 29*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 30*387f9dfdSAndroid Build Coastguard Worker 0 233 0 3 1 0 0 31*387f9dfdSAndroid Build Coastguard Worker Total 233 0 3 1 0 0 32*387f9dfdSAndroid Build Coastguard Worker 33*387f9dfdSAndroid Build Coastguard WorkerRX 34*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 35*387f9dfdSAndroid Build Coastguard Worker 0 219 2 1 1 0 0 36*387f9dfdSAndroid Build Coastguard Worker Total 219 2 1 1 0 0 37*387f9dfdSAndroid Build Coastguard Worker---------------------------------------------------------------------------- 38*387f9dfdSAndroid Build Coastguard Worker 39*387f9dfdSAndroid Build Coastguard Workeror you can just use the default mode 40*387f9dfdSAndroid Build Coastguard Worker# ./netqtop.py -n lo 41*387f9dfdSAndroid Build Coastguard WorkerThu Sep 10 11:27:45 2020 42*387f9dfdSAndroid Build Coastguard WorkerTX 43*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 44*387f9dfdSAndroid Build Coastguard Worker 0 92 0 7 0 0 0 45*387f9dfdSAndroid Build Coastguard Worker Total 92 0 7 0 0 0 46*387f9dfdSAndroid Build Coastguard Worker 47*387f9dfdSAndroid Build Coastguard WorkerRX 48*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 49*387f9dfdSAndroid Build Coastguard Worker 0 78 3 4 0 0 0 50*387f9dfdSAndroid Build Coastguard Worker Total 78 3 4 0 0 0 51*387f9dfdSAndroid Build Coastguard Worker---------------------------------------------------------------------------- 52*387f9dfdSAndroid Build Coastguard WorkerThu Sep 10 11:27:46 2020 53*387f9dfdSAndroid Build Coastguard WorkerTX 54*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 55*387f9dfdSAndroid Build Coastguard Worker 0 179 0 5 1 0 0 56*387f9dfdSAndroid Build Coastguard Worker Total 179 0 5 1 0 0 57*387f9dfdSAndroid Build Coastguard Worker 58*387f9dfdSAndroid Build Coastguard WorkerRX 59*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 60*387f9dfdSAndroid Build Coastguard Worker 0 165 3 2 1 0 0 61*387f9dfdSAndroid Build Coastguard Worker Total 165 3 2 1 0 0 62*387f9dfdSAndroid Build Coastguard Worker---------------------------------------------------------------------------- 63*387f9dfdSAndroid Build Coastguard Worker 64*387f9dfdSAndroid Build Coastguard WorkerThis NIC only has 1 queue. 65*387f9dfdSAndroid Build Coastguard WorkerIf you want the tool to print results after a longer interval, specify seconds with -i: 66*387f9dfdSAndroid Build Coastguard Worker# ./netqtop.py -n lo -i 3 67*387f9dfdSAndroid Build Coastguard WorkerThu Sep 10 11:31:26 2020 68*387f9dfdSAndroid Build Coastguard WorkerTX 69*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 70*387f9dfdSAndroid Build Coastguard Worker 0 85 0 11 0 0 0 71*387f9dfdSAndroid Build Coastguard Worker Total 85 0 11 0 0 0 72*387f9dfdSAndroid Build Coastguard Worker 73*387f9dfdSAndroid Build Coastguard WorkerRX 74*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 75*387f9dfdSAndroid Build Coastguard Worker 0 71 5 6 0 0 0 76*387f9dfdSAndroid Build Coastguard Worker Total 71 5 6 0 0 0 77*387f9dfdSAndroid Build Coastguard Worker---------------------------------------------------------------------------- 78*387f9dfdSAndroid Build Coastguard WorkerThu Sep 10 11:31:29 2020 79*387f9dfdSAndroid Build Coastguard WorkerTX 80*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 81*387f9dfdSAndroid Build Coastguard Worker 0 153 0 7 1 0 0 82*387f9dfdSAndroid Build Coastguard Worker Total 153 0 7 1 0 0 83*387f9dfdSAndroid Build Coastguard Worker 84*387f9dfdSAndroid Build Coastguard WorkerRX 85*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) 86*387f9dfdSAndroid Build Coastguard Worker 0 139 4 3 1 0 0 87*387f9dfdSAndroid Build Coastguard Worker Total 139 4 3 1 0 0 88*387f9dfdSAndroid Build Coastguard Worker---------------------------------------------------------------------------- 89*387f9dfdSAndroid Build Coastguard Worker 90*387f9dfdSAndroid Build Coastguard WorkerTo see PPS and BPS of each queue, use -t: 91*387f9dfdSAndroid Build Coastguard Worker# ./netqtop.py -n lo -i 1 -t 92*387f9dfdSAndroid Build Coastguard WorkerThu Sep 10 11:37:02 2020 93*387f9dfdSAndroid Build Coastguard WorkerTX 94*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) BPS PPS 95*387f9dfdSAndroid Build Coastguard Worker 0 114 0 10 0 0 0 1.11K 10.0 96*387f9dfdSAndroid Build Coastguard Worker Total 114 0 10 0 0 0 1.11K 10.0 97*387f9dfdSAndroid Build Coastguard Worker 98*387f9dfdSAndroid Build Coastguard WorkerRX 99*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) BPS PPS 100*387f9dfdSAndroid Build Coastguard Worker 0 100 4 6 0 0 0 1000.0 10.0 101*387f9dfdSAndroid Build Coastguard Worker Total 100 4 6 0 0 0 1000.0 10.0 102*387f9dfdSAndroid Build Coastguard Worker----------------------------------------------------------------------------------------------- 103*387f9dfdSAndroid Build Coastguard WorkerThu Sep 10 11:37:03 2020 104*387f9dfdSAndroid Build Coastguard WorkerTX 105*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) BPS PPS 106*387f9dfdSAndroid Build Coastguard Worker 0 271 0 3 1 0 0 1.06K 4.0 107*387f9dfdSAndroid Build Coastguard Worker Total 271 0 3 1 0 0 1.06K 4.0 108*387f9dfdSAndroid Build Coastguard Worker 109*387f9dfdSAndroid Build Coastguard WorkerRX 110*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) BPS PPS 111*387f9dfdSAndroid Build Coastguard Worker 0 257 2 1 1 0 0 1.0K 4.0 112*387f9dfdSAndroid Build Coastguard Worker Total 257 2 1 1 0 0 1.0K 4.0 113*387f9dfdSAndroid Build Coastguard Worker----------------------------------------------------------------------------------------------- 114*387f9dfdSAndroid Build Coastguard Worker 115*387f9dfdSAndroid Build Coastguard WorkerWhen filtering multi-queue NICs, you do not need to specify the number of queues, 116*387f9dfdSAndroid Build Coastguard Workerthe tool calculates it for you: 117*387f9dfdSAndroid Build Coastguard Worker# ./netqtop.py -n eth0 -t 118*387f9dfdSAndroid Build Coastguard WorkerThu Sep 10 11:39:21 2020 119*387f9dfdSAndroid Build Coastguard WorkerTX 120*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) BPS PPS 121*387f9dfdSAndroid Build Coastguard Worker 0 0 0 0 0 0 0 0.0 0.0 122*387f9dfdSAndroid Build Coastguard Worker 1 0 0 0 0 0 0 0.0 0.0 123*387f9dfdSAndroid Build Coastguard Worker 2 0 0 0 0 0 0 0.0 0.0 124*387f9dfdSAndroid Build Coastguard Worker 3 0 0 0 0 0 0 0.0 0.0 125*387f9dfdSAndroid Build Coastguard Worker 4 0 0 0 0 0 0 0.0 0.0 126*387f9dfdSAndroid Build Coastguard Worker 5 0 0 0 0 0 0 0.0 0.0 127*387f9dfdSAndroid Build Coastguard Worker 6 0 0 0 0 0 0 0.0 0.0 128*387f9dfdSAndroid Build Coastguard Worker 7 0 0 0 0 0 0 0.0 0.0 129*387f9dfdSAndroid Build Coastguard Worker 8 54 2 0 0 0 0 108.0 2.0 130*387f9dfdSAndroid Build Coastguard Worker 9 161 0 9 0 0 0 1.42K 9.0 131*387f9dfdSAndroid Build Coastguard Worker 10 0 0 0 0 0 0 0.0 0.0 132*387f9dfdSAndroid Build Coastguard Worker 11 0 0 0 0 0 0 0.0 0.0 133*387f9dfdSAndroid Build Coastguard Worker 12 0 0 0 0 0 0 0.0 0.0 134*387f9dfdSAndroid Build Coastguard Worker 13 0 0 0 0 0 0 0.0 0.0 135*387f9dfdSAndroid Build Coastguard Worker 14 0 0 0 0 0 0 0.0 0.0 136*387f9dfdSAndroid Build Coastguard Worker 15 0 0 0 0 0 0 0.0 0.0 137*387f9dfdSAndroid Build Coastguard Worker 16 0 0 0 0 0 0 0.0 0.0 138*387f9dfdSAndroid Build Coastguard Worker 17 0 0 0 0 0 0 0.0 0.0 139*387f9dfdSAndroid Build Coastguard Worker 18 0 0 0 0 0 0 0.0 0.0 140*387f9dfdSAndroid Build Coastguard Worker 19 0 0 0 0 0 0 0.0 0.0 141*387f9dfdSAndroid Build Coastguard Worker 20 0 0 0 0 0 0 0.0 0.0 142*387f9dfdSAndroid Build Coastguard Worker 21 0 0 0 0 0 0 0.0 0.0 143*387f9dfdSAndroid Build Coastguard Worker 22 0 0 0 0 0 0 0.0 0.0 144*387f9dfdSAndroid Build Coastguard Worker 23 0 0 0 0 0 0 0.0 0.0 145*387f9dfdSAndroid Build Coastguard Worker 24 0 0 0 0 0 0 0.0 0.0 146*387f9dfdSAndroid Build Coastguard Worker 25 0 0 0 0 0 0 0.0 0.0 147*387f9dfdSAndroid Build Coastguard Worker 26 0 0 0 0 0 0 0.0 0.0 148*387f9dfdSAndroid Build Coastguard Worker 27 0 0 0 0 0 0 0.0 0.0 149*387f9dfdSAndroid Build Coastguard Worker 28 0 0 0 0 0 0 0.0 0.0 150*387f9dfdSAndroid Build Coastguard Worker 29 0 0 0 0 0 0 0.0 0.0 151*387f9dfdSAndroid Build Coastguard Worker 30 0 0 0 0 0 0 0.0 0.0 152*387f9dfdSAndroid Build Coastguard Worker 31 0 0 0 0 0 0 0.0 0.0 153*387f9dfdSAndroid Build Coastguard Worker Total 141 2 9 0 0 0 1.52K 11.0 154*387f9dfdSAndroid Build Coastguard Worker 155*387f9dfdSAndroid Build Coastguard WorkerRX 156*387f9dfdSAndroid Build Coastguard Worker QueueID avg_size [0, 64) [64, 512) [512, 2K) [2K, 16K) [16K, 64K) BPS PPS 157*387f9dfdSAndroid Build Coastguard Worker 0 127 3 9 0 0 0 1.5K 12.0 158*387f9dfdSAndroid Build Coastguard Worker 1 0 0 0 0 0 0 0.0 0.0 159*387f9dfdSAndroid Build Coastguard Worker 2 0 0 0 0 0 0 0.0 0.0 160*387f9dfdSAndroid Build Coastguard Worker 3 0 0 0 0 0 0 0.0 0.0 161*387f9dfdSAndroid Build Coastguard Worker 4 0 0 0 0 0 0 0.0 0.0 162*387f9dfdSAndroid Build Coastguard Worker 5 0 0 0 0 0 0 0.0 0.0 163*387f9dfdSAndroid Build Coastguard Worker 6 0 0 0 0 0 0 0.0 0.0 164*387f9dfdSAndroid Build Coastguard Worker 7 0 0 0 0 0 0 0.0 0.0 165*387f9dfdSAndroid Build Coastguard Worker 8 0 0 0 0 0 0 0.0 0.0 166*387f9dfdSAndroid Build Coastguard Worker 9 0 0 0 0 0 0 0.0 0.0 167*387f9dfdSAndroid Build Coastguard Worker 10 0 0 0 0 0 0 0.0 0.0 168*387f9dfdSAndroid Build Coastguard Worker 11 0 0 0 0 0 0 0.0 0.0 169*387f9dfdSAndroid Build Coastguard Worker 12 0 0 0 0 0 0 0.0 0.0 170*387f9dfdSAndroid Build Coastguard Worker 13 0 0 0 0 0 0 0.0 0.0 171*387f9dfdSAndroid Build Coastguard Worker 14 0 0 0 0 0 0 0.0 0.0 172*387f9dfdSAndroid Build Coastguard Worker 15 0 0 0 0 0 0 0.0 0.0 173*387f9dfdSAndroid Build Coastguard Worker 16 0 0 0 0 0 0 0.0 0.0 174*387f9dfdSAndroid Build Coastguard Worker 17 0 0 0 0 0 0 0.0 0.0 175*387f9dfdSAndroid Build Coastguard Worker 18 0 0 0 0 0 0 0.0 0.0 176*387f9dfdSAndroid Build Coastguard Worker 19 0 0 0 0 0 0 0.0 0.0 177*387f9dfdSAndroid Build Coastguard Worker 20 0 0 0 0 0 0 0.0 0.0 178*387f9dfdSAndroid Build Coastguard Worker 21 0 0 0 0 0 0 0.0 0.0 179*387f9dfdSAndroid Build Coastguard Worker 22 0 0 0 0 0 0 0.0 0.0 180*387f9dfdSAndroid Build Coastguard Worker 23 0 0 0 0 0 0 0.0 0.0 181*387f9dfdSAndroid Build Coastguard Worker 24 0 0 0 0 0 0 0.0 0.0 182*387f9dfdSAndroid Build Coastguard Worker 25 0 0 0 0 0 0 0.0 0.0 183*387f9dfdSAndroid Build Coastguard Worker 26 0 0 0 0 0 0 0.0 0.0 184*387f9dfdSAndroid Build Coastguard Worker 27 0 0 0 0 0 0 0.0 0.0 185*387f9dfdSAndroid Build Coastguard Worker 28 0 0 0 0 0 0 0.0 0.0 186*387f9dfdSAndroid Build Coastguard Worker 29 0 0 0 0 0 0 0.0 0.0 187*387f9dfdSAndroid Build Coastguard Worker 30 0 0 0 0 0 0 0.0 0.0 188*387f9dfdSAndroid Build Coastguard Worker 31 0 0 0 0 0 0 0.0 0.0 189*387f9dfdSAndroid Build Coastguard Worker Total 127 3 9 0 0 0 1.5K 12.0 190*387f9dfdSAndroid Build Coastguard Worker-----------------------------------------------------------------------------------------------