我们如何使用Python 3计算计算机网络和磁盘I / O的当前负载/使用率?当前负载可能意味着测量1秒钟的电流使用情况。
我最感兴趣的Windows / Linux系统指标包括
PS:探索了psutil
,但它仅提供对cpu和内存指标的访问,而不能访问网络和磁盘I / O。
DigitalOcean已经实现了类似的功能,如下图所示,它们的液滴度量监控页面
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