我正在尝试构建Python模块,用于监控和测量以太网速度(接收和发送)。此模块是performance计划的一部分。我寻找了使其成为可能的库,唯一找到的库是使用以下命令的Psutil:
psutil.net_io_counters(pernic=True)此命令的输出为:
'Ethernet 5': snetio(bytes_sent=211080874L, bytes_recv=929895370L, packets_sent=667031L, packets_recv=2757846L, errin=0L, errout=0L, dropin=0L, dropout=0L),
'Loopback Pseudo-Interface 1': snetio(bytes_sent=0L, bytes_recv=0L, packets_sent=0L, packets_recv=0L, errin=0L, errout=0L, dropin=0L, dropout=0L),
'isatap.replay.local': snetio(bytes_sent=0L, bytes_recv=0L, packets_sent=0L, packets_recv=0L, errin=0L, errout=0L, dropin=0L, dropout=0L)所以我只得到了字节数,而不知道命令测量的时间间隔,所以我不能从它中提取速度。
哪些库与我的任务相关?如何使用python脚本提取以太网速度?有没有可以简化任务的CMD命令?
发布于 2018-04-30 16:22:55
所谓速度,指的是带宽。您可以使用简单的ifconfig查看最大理论带宽。要计算实际使用的带宽,您需要多次调用net_io_counters之类的函数,并使用输出+时间间隔来确定。没有“测速仪”这回事。一种更简单但不太精确的方法是通过结合net_io_counters的输出和“正常运行时间”来计算自系统启动以来的平均使用带宽(假设您没有在两者之间执行“if down /up”)。
最后,为了了解您的实际最大带宽,通常的方法是下载一个已知大小和下载时间的文件。当然,考虑到网络是如何工作的,只有当远程文件服务器的上传带宽是>=你的本地下载带宽时,你才能在这里得到一个清晰的画面,否则下载速度将被远程机器/网络所限制。
https://stackoverflow.com/questions/50096144
复制相似问题