ifstat查看网卡流量的原理:读的是哪个/proc/ 接口啊
同diskIO一样,网络的IO也同样有统计计数的,是/proc/net/dev一个典型的输出就是这个样子的:
root@station6:/proc# cat /proc/net/dev Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed wlp4s0: 123589172 182852 0 0 0 0 0 0 28336760 130722 0 0 0 0 0 0 enp0s25: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 docker0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tap0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 lo: 3105904 22315 0 0 0 0 0 0 3105904 22315 0 0 0 0 0 0 r
看下这里的收包的频率和发送的频率到底是啥样子的
更新网卡接受接受数据:ieee80211_rx_stats ieee80211_tx_stats
在qemu中我安装的是e1000网卡,计算收发的地方函数e1000_clean_rx_irq/e1000_clean_tx_irq,把函数中更新这两个值的地方给注释掉的话,当虚拟机内外使用ping操作时发现/proc/net/dev数据无变化,这些都是在网卡级别的统计。
如果只监听某一个socket的速度要怎么办?机器上所有的sock从哪里得到