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