我遇到了网速慢的问题。我在一天和一周的不同时间使用过 speedtest.net,结果显示我获得的带宽仅为我所付费用的 10-20%。我的 ISP 告诉我承诺的带宽是平均值,因此单次测试并不能证明连接不佳。
所以现在我想在我离开的几天内进行几次测试(比如每隔 x 分钟一次),从而得到一个平均值。
我该如何最好地收集这些数据?
答案1
答案2
我将把它作为 XY 问题来回答,而不是作为你的问题的答案,因为这里已经有一个非常好的答案可以解决你的问题。
理论
当 ISP 告诉您根据您的订阅您应该获得某个速度时,这确实是您平均应该被允许获得的速度。
但对于消费者来说,互联网的运作方式如下:许多用户与许多家庭共享带宽,这被称为超额预订。这个想法是,大多数家庭不会同时用完整个带宽,因此可以在需要时提供速度,但这也意味着,可能会发生许多人尝试同时上传或下载的情况,从而造成拥塞,这可能会稍微降低速度。
根据上一段的最后一句话,ISP 会告诉您,您所支付的速度是一个平均值,并且在大多数情况下您应该获得该速度。
不幸的是,当向没有经验的员工解释这一点时,他们不懂这项技术,他们所听到的只是:这是一个平均值,因此有时速度可能会较低。
您的连接速度明显下降至正常水平的 10-20%,这远远超出了正常超额预订造成的速度下降幅度,这表明您的线路确实存在问题。
不过,需要注意的是:如果上传或下载中有一个完全饱和,另一个也会受到影响。因此,如果您的上传速度为 1 MBit,下载速度为 1000 MBit,但您充分利用了 1 MBit 的上传速度,那么下载速度也会减慢。原因是每次上传或下载都会发回一个数据包以确认对方已收到,如果此数据包无法发回但已排队,则对方将等待向您发送其余数据,因此连接速度会显著减慢。
这也意味着,如果由于某种原因您的上传速度远低于应有的速度,更接近 0.1mbit,那么您可以肯定您的下载速度会出现很大波动并且也会很慢,因为确认数据包发送的速度也很慢。
使故障排除更容易的操作
ISP 总是希望排除任何本地网络问题,因此建议使用 LAN 电缆直接从调制解调器连接到笔记本电脑或 PC(如果是调制解调器/路由器组合)或连接到其后面的路由器,然后执行速度测试。确保所有其他设备都已拔下。如果网速很慢,请致电您的 ISP,因为这是您最理想的状态,而且它也无法正常工作。
此外,ISP 还希望排除的另一件事是调制解调器内部的服务挂起,因此请务必关闭调制解调器,等待 10 秒钟,然后再次打开,看看是否能解决您的问题。当您致电他们时,您可以告诉他们您已经执行了这些操作。这会让他们知道您知道自己在做什么,他们会更认真地对待您。
您可以要求 ISP 从他们的终端测量线路,并告诉他们您仅使用 LAN 电缆将一台设备连接到调制解调器来执行速度测试,这样应该会得到最佳结果。
如果 ISP 表示他们无法测量线路,请要求转接给更有经验的人员,或者如果他们拒绝,则转接给他们的主管。
如果 ISP 测量了线路,但是声称线路工作正常,那么他们很可能要派一名机械师过来。
答案3
我该如何最好地收集这些数据?
有一个类似于 speedtest.net 的命令行工具叫做speedtest-cli
:https://github.com/sivel/speedtest-cli。它支持多种输出格式,例如 csv 或 json 或默认详细人类可读格式。您可以speedtest-cli
从终端循环运行多次:
for i in `seq 1 2`; do speedtest-cli; done
Retrieving speedtest.net configuration...
Testing from ***...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by *** ms
Testing download speed................................................................................
Download: *** Mbit/s
Testing upload speed......................................................................................................
Upload: *** Mbit/s
Retrieving speedtest.net configuration...
Testing from ***...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by *** ms
Testing download speed................................................................................
Download: *** Mbit/s
Testing upload speed......................................................................................................
Upload: *** Mbit/s
完成后,您可以将所有这些输出发送到 ISP,作为可能存在连接不良的证明。
答案4
如果您有可用的 Linux 机器或 Windows 上的 wsl(或 Windows 本身,但自动化脚本更加繁琐),我会使用 iperf3。
这里有一些服务器使用时可能需要测试其中的一些或者找到您自己的。
(在此示例中,脚本保存在/home/speedtest/speedtest.sh
)
#!/bin/bash
date | tee -a /home/speedtest/log.txt
# testing upload
iperf3 -c speedtestserver.domain.tld | tee -a /home/speedtest/log.txt
# testing download
iperf3 -c speedtestserver.domain.tld -R | tee -a /home/speedtest/log.txt
创建一个 cronjob
*/30 * * * * /bin/bash /home/speedtest/speedtest.sh
你可以用这个轻松地调整你的执行计划地点