如何使用 C 或 shell 脚本计算传输和接收的网络利用率?
我的系统是嵌入式linux。我当前的方法是记录收到的字节(b1),等待1秒,然后再次记录(b2)。然后知道链接速度,我计算所使用的接收带宽的百分比。
接收利用率 = (((b2 - b1)*8)/link_speed)*100
有更好的方法吗?
查看执行类似操作的开源程序。
我的搜索发现了一个名为的小工具vnstat.
它尝试查询 /proc 文件系统(如果可用)并使用获取地址对于没有它的系统。然后它获取正确的 AF_LINK 接口,获取相应的 if_data 结构,然后读取发送和接收的字节,如下所示:
ifinfo.rx = ifd->ifi_ibytes;
ifinfo.tx = ifd->ifi_obytes;
另请记住,sleep() 的睡眠时间可能会超过 1 秒,因此您应该在方程式中使用高分辨率(挂钟)计时器——或者您可以深入研究 if 函数和结构,看看是否找到合适的东西为了你的任务。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)