升级到 Ubuntu 14.04 后,我开始注意到日常互联网使用量出现短暂但持续的峰值(通过 Steam 玩在线游戏时最为明显)。这些峰值大约每 2 分钟出现一次,持续几秒钟后,一切恢复到可接受的速度。
当我使用 ping 命令来检测我的路由器时,我收到大量数据包,耗时 0.4 到 0.8 毫秒,这还算正常。然后当这些峰值出现时,我收到大约 10 个数据包,所有这些数据包耗时 200-350(或更长时间)。但 Ubuntu 13.10 上根本没有发生这种情况,我可能还应该提到我是通过 Wi-Fi 上网的。
我尝试使用 nethogs、iftop、wireshark、etherape 等工具来识别这些峰值的来源,但没有成功(我从未追踪过类似的问题,所以我可能看错了)。知道是什么原因造成的吗?
答案1
在我禁用网络管理器的网络扫描行为后,这个问题就解决了。
找到这个解决方案并不容易。大多数游戏玩家都注意到了这些峰值并遇到了问题,而我们的用例是在机器人领域。最后,解决延迟峰值问题的几种类似方法为我指明了正确的方向(看看你的网络管理员!):
- 通过手动配置替换网络管理器,从而消除延迟峰值:http://ubuntuforums.org/showthread.php?t=1714817
- 用 WICD 替换网络管理器,从而消除延迟峰值:https://steamcommunity.com/groups/homestream/discussions/0/540735426854884989/
- 关于网络管理器的扫描行为导致峰值和崩溃的旧错误报告:https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/373680
我最喜欢的解决方案最终描述如下:https://github.com/abperiasamy/rtl8812AU_8821AU_linux/issues/24
也就是说,通过在网络管理器的特定 WiFi 连接的设置中设置 AP 的 BSSID 来禁用网络扫描。
我希望这个解决方案也适合您!
答案2
关闭所有使用资源的网络,然后启动 wireshark。查看是否有意外的内容在通信。
当事情发生时,我还会对 /var/log/syslog 进行跟踪,以查看是否有任何内容生成。
答案3
这听起来很像 wifi 驱动程序问题。要识别或消除这种可能性,请尝试使用 USB wifi 适配器。如果问题消失,则表明 wifi 驱动程序存在错误。