【发布时间】:2020-07-13 12:31:15
【问题描述】:
我有一个消耗大量网络流量的应用程序。我使用 psutil 以 kbits 为单位测量网络活动,代码如下:
old_value = psutil.net_io_counters(nowrap=True).bytes_sent + psutil.net_io_counters(nowrap=True).bytes_recv
sleep(1)
while True:
new_value = psutil.net_io_counters(nowrap=True).bytes_sent + psutil.net_io_counters(nowrap=True).bytes_recv
net_usage = (new_value - old_value)/1024.0 * 8
old_value = new_value
print(net_usage)
sleep(1)
在此之前,我使用以下命令将网络限制为 10Mbps:
ethtool -s eth0 speed 10 duplex full autoneg off
我希望看到一个接近 10000kbit 的数字列表,但这些数字显然受到接近 ~6380 的数字的限制:
对此有解释吗? IE。为什么限制不是 10000,即使数字明显受到 ethtool 的限制?我的测量代码或期望是否存在某种缺陷?
编辑:我的应用程序主要使用网络上传数据。是否有可能 ethtool 将 10Mbit 的限制分为上传和下载方向,而上传仅分配 6.4Mbit?
【问题讨论】:
-
您的网络带宽是多少?您确定本地 NIC 是限制因素吗?
-
这是本地 1Gbps 网络上的通信。如果没有 ethtool 命令,使用率显然更高。仅在应用 ethtool 命令后才存在 ~6k 限制。
标签: python-3.x usage-statistics psutil network-traffic