
curl 中逐秒的输出是否“足够”准确?“当前速率”是在多长时间内计算出来的?
我目前正在使用 Curl 中逐秒的状态输出作为该连接上当前带宽的一般衡量标准。
如果你不知道这个“状态输出”是什么意思,那么描述它就没有意义了:-)
我认为它“足够好”了……现场测试表明它非常接近,但我想确认一下。另外,每秒的速率是否是上一秒的当前速率?我假设是的,尽管手册似乎对此有些不清楚。
答案1
几天前我看过这个问题,我必须说我有时也曾有过同样的疑惑。顺便说一句,当你在数据包级别进行分析时,它并不那么准确。最重要的是,即使状态输出中的值也相互矛盾。例如,请参见下文:(检查当前速度(字节/秒)的值,并与平均下载速度和接收数据(字节)相关联)
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
2 10.0M 2 234k 0 0 161k 0 0:01:03 0:00:01 0:01:02 161k
7 10.0M 7 769k 0 0 314k 0 0:00:32 0:00:02 0:00:30 314k
10 10.0M 10 1102k 0 0 319k 0 0:00:32 0:00:03 0:00:29 319k
16 10.0M 16 1671k 0 0 368k 0 0:00:27 0:00:04 0:00:23 368k
23 10.0M 23 2371k 0 0 435k 0 0:00:23 0:00:05 0:00:18 480k
28 10.0M 28 2905k 0 0 450k 0 0:00:22 0:00:06 0:00:16 534k
31 10.0M 31 3269k 0 0 434k 0 0:00:23 0:00:07 0:00:16 492k
38 10.0M 38 3973k 0 0 470k 0 0:00:21 0:00:08 0:00:13 574k
43 10.0M 43 4476k 0 0 473k 0 0:00:21 0:00:09 0:00:12 569k
47 10.0M 47 4814k 0 0 459k 0 0:00:22 0:00:10 0:00:12 486k
54 10.0M 54 5571k 0 0 486k 0 0:00:21 0:00:11 0:00:10 533k
59 10.0M 59 6089k 0 0 474k 0 0:00:21 0:00:12 0:00:09 532k
63 10.0M 63 6522k 0 0 478k 0 0:00:21 0:00:13 0:00:08 492k
68 10.0M 68 6992k 0 0 481k 0 0:00:21 0:00:14 0:00:07 496k
74 10.0M 74 7599k 0 0 485k 0 0:00:21 0:00:15 0:00:06 536k
80 10.0M 80 8255k 0 0 489k 0 0:00:20 0:00:16 0:00:04 494k
84 10.0M 84 8648k 0 0 491k 0 0:00:20 0:00:17 0:00:03 535k
89 10.0M 89 9202k 0 0 493k 0 0:00:20 0:00:18 0:00:02 534k
95 10.0M 95 9745k 0 0 495k 0 0:00:20 0:00:19 0:00:01 536k
100 10.0M 100 10.0M 0 0 507k 0 0:00:20 0:00:20 --:--:-- 584k
现在看一下下图中该流的第一秒和第二秒相对于整个流的嗅探器跟踪分析摘要:(这些值与curl
状态输出之间的差异确实非常显著)
第一秒:
第二秒:
我认为这确实证明了 curl 报告的结果并不准确,但或多或少还是达到了目的。它报告的平均值是从第五秒开始的过去 5 秒的平均值,甚至平均值计算也不精确。
另一点值得注意的一点是 curl 总是显示上传速度为 0,而嗅探器跟踪显示此 20 秒 11MB 交易的平均上传速度约为 22558 字节/秒。
希望有帮助!