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从哪里得到