使用Python(Linux / Windows)的网络带宽(Mbps)和磁盘I / O(MB / s)

时间:2019-06-23 17:51:22

标签: python linux python-3.x ubuntu psutil

我们如何使用Python 3计算计算机网络和磁盘I / O的当前负载/使用率?当前负载可能意味着测量1秒钟的电流使用情况。

我最感兴趣的Windows / Linux系统指标包括

  1. 网络带宽(以Mbps为单位)
  2. 磁盘I / O(以MB / s为单位)

PS:探索了psutil,但它仅提供对cpu和内存指标的访问,而不能访问网络和磁盘I / O。

DigitalOcean已经实现了类似的功能,如下图所示,它们的液滴度量监控页面

enter image description here

尝试计算网络IO

import psutil
import time
import os

interval = 1
t0 = time.time()
upload0 = psutil.net_io_counters().bytes_sent
download0 = psutil.net_io_counters().bytes_recv
time.sleep(interval)

t1 = time.time()
upload1 = psutil.net_io_counters().bytes_sent
download1 = psutil.net_io_counters().bytes_recv

upload = (upload1 - upload0) / (t1 - t0)
download = (download1 - download0) / (t1 - t0)

print('Upload (Mbps): ', round(upload/1000000, 3))
print('Download (Mbps): ', round(download/1000000, 3))

比较了这段代码给出的结果,它与Speedtest.net测量的结果完全不同。

在Macbook Pro(OS X Mojave 10.14.5,公共Wifi,VPN)上进行了测试

按代码进行测量:下载9.382 Mbps,上传3.03 Mbps

由Speedtest测量:下载速度为53.05 Mbps,上传速度为22.89 Mbps

0 个答案:

没有答案