跳转至主要内容
"我们刚从T1(1.544 mbps)升级到T3(44.736 mbps),为什么复制那个文件还需要90分钟?"

 

简单的答案是,更多的容量不等于更快的字节。如果你的容量增加了近29(44.736 / 1.544)倍,你可能会在同样的90分钟内复制29个文件,但你可能无法更快地复制那一个文件。我去年在题为"应用程序性能问题和延迟"的博客中提到了这一点,但我认为文件传输和copy_file需要一个更重点的博客。

 

关键与窗口大小有关,也就是说,发送主机/应用程序可以发送多少字节,而不必停下来等待接收主机/应用程序的确认。有些应用,如FTP没有应用层的确认,而是依赖TCP。在这种情况下,窗口的大小是基于远程主机的TCP层所宣传的内容,最多64K字节,这是STCP所支持的最大值。有些应用有应用层窗口,对于这些应用,限制窗口是TCP和应用窗口中较小的一个。
最大吞吐量的计算方式为

 

W / RTT = T
哪儿
W是窗口大小,单位是字节
RTT是指往返时间,以秒为单位。
T是每秒的吞吐量,单位是字节
往返时间是指发送一些数据并得到确认所需的时间。对于大距离,即跨国,该时间主要是基于字节必须传输的距离和端点之间所有网络设备的处理速度。接收主机的处理速度、数据包大小(TCP MSS值,见"提高跨子网吞吐量的简单方法"),当然还有最慢链路的带宽,作用较小。

 

例如,如果RTT为0.050秒,窗口为64K,则最大吞吐量为每秒1,310,720字节(64*1024/0.050)。只要链路的未使用容量大于吞吐量,增加容量不会加快传输时间。
T是最大可能的吞吐量。你所做的任何事情(增加窗口或减少RTT)都不能使事情变得更快,但恶劣的网络条件可能会使事情变得相当缓慢。

 

估计传输时间只是用文件大小除以吞吐量而已

 

F/ W * RTT = Ti
哪儿
F是文件大小,单位为字节
W是窗口大小,单位是字节
RTT是指往返时间,以秒为单位。
Ti是传输文件的时间,以秒为单位

 

OSL的应用窗口大小为4K,OpenVOS文件系统报告的文件大小是以4K字节为单位的块,因此,要估计使用copy_file命令在两个OpenVOS系统之间复制文件的时间,只需做到

 

F * RTT = Ti
哪儿
F是文件大小,以块为单位
RTT是指往返时间,以秒为单位。
Ti是传输文件的时间,以秒为单位

 

在一条RTT为0.050秒的链路上,OSL复制一个50,000块的文件(50,000 * 0.05)需要41分钟多一点。最大的吞吐量将是每秒81,920字节(4096 / 0.050)。只要你的链路未使用的网络容量大于每秒81,920字节,增加容量不会减少复制文件的时间。

 

最简单的测量往返时间的方法是用ping。遗憾的是,ping并不能给你一个RTT的数字,而是多个数字,而且数字可能相差很大,比如。

 

ping 172.16.1.80
Pinging host 172.16.1.80 : 172.16.1.80
ICMP Echo Reply:TTL 53 time = 418 ms
ICMP Echo Reply:TTL 53 time = 107 ms
ICMP Echo Reply:TTL 53 time = 91 ms
ICMP Echo Reply:TTL 53 time = 100 ms
Host 172.16.1.80 replied to all 4 of the 4 pings
ready 12:03:15

 

如果你对计算最佳的吞吐量感兴趣,请使用最低的数字。如果你对合理估计你应该期望的东西感兴趣,使用10个ping数,扔掉两个最高和两个最低的数字,然后平均剩下的数字。

 

ping 172.16.1.80 -count 10
Pinging host 172.16.1.80 : 172.16.1.80
ICMP Echo Reply:TTL 53 time = 89 ms
ICMP Echo Reply:TTL 53 time = 96 ms
ICMP Echo Reply:TTL 53 time = 95 ms
ICMP Echo Reply:TTL 53 time = 105 ms
ICMP Echo Reply:TTL 53 time = 186 ms
ICMP Echo Reply:TTL 53 time = 87 ms
ICMP Echo Reply:TTL 53 time = 90 ms
ICMP Echo Reply:TTL 53 time = 90 ms
ICMP Echo Reply:TTL 53 time = 89 ms
ICMP Echo Reply:TTL 53 time = 96 ms
Host 172.16.1.80 replied to all 10 of the 10 pings
ready 12:12:39
calc 96 + 95 + 90 + 90 + 89 + 96
556
ready 12:12:49
calc 556 / 6
92.6666666666667
ready 12:12:57

 

正如我上面说的,一个敌对的网络会使事情的速度明显变慢。 Ping超时是一个迹象。因此,任何超时意味着这些计算可能是显著乐观的。传输也会因为繁忙的磁盘和或CPU而变慢,这些磁盘和CPU阻止发送方以尽可能快的速度读取和发送数据,或导致接收方读取数据的速度比其到达速度慢,延迟应用程序确认(增加往返时间),并可能填满TCP接收缓冲区,从而导致发送主机停止传输。要想知道是否有这些情况,唯一的办法就是通过数据包跟踪。

© 2024Stratus Technologies.