我想通过htaccess来测量一些服务器的login(服务器处理的速度有多快),我想忽略在newtork上丢失的时间。 所以我应该扣除一次或两次的ping延迟? 或者我的计算错了
从结果中删除networking延迟的最好方法是尝试从本地主机到服务器的testing。 这可以是服务器本身,除非您正在执行高负载testing(在这种情况下,“客户端”处理会干扰您的基准testing)。
除非您花费大量的读数,否则通过ping读数来判断经过validation的HTTP请求的networking延迟是不会特别准确的。
无论如何,这将是超过2倍的平时间。 创build一个TCP连接(我在这里忽略持久的HTTP连接)需要至less三个通过networking传输的IP数据包:从客户端到服务器的SYN数据包,到客户端的SYN + ACK,以及从客户端到服务器的最终ACK 。 假设从您到服务器的旅行时间与旅行时间相同,即1.5坪。 IIRC HTTP请求是否足够小可以包含在最后的ACK包中。 之后,将会有至less一个数据包的HTTP响应。 如果请求或响应中的任何一个大于您和服务器之间的MTU,那么当然会有更多的数据包来回传送。
如果你直接发送authentication信息,那就是:至less有4个IP包,有+ back + there + 2 ping(这是两个包,一个是返回的)。 但是先做一个未authentication的请求并不less见,得到一个401响应,然后做出响应的authentication请求,至less把这个响应加倍到8个数据包。
此外,请注意,默认情况下,ping所使用的ICMP / IP数据包在沿用于HTTP的TCP / IP数据包的path中可能具有不同的优先级, 并且包含HTTP请求和HTTP响应数据的数据包将大于默认的ping数据包(ping通常发送零载荷的数据包)。
所以,如果可以的话,从同一局域网上的一台机器上进行testing – 远程testing,并试图猜测networking时间的部分时间,以及处理延迟不会给你什么准确的答案。
这取决于你如何衡量。 例如,您是否从build立TCP连接到接收数据时进行测量? 或者,您是否通过TCP连接发送请求,直到TCP连接closures?
如果你想正确地做到这一点,你将不得不在你测量的时间间隔里看看到底发生了什么,看看需要多less次“越区切换”,并多次减去ping时间。 也许最简单的方法是从不同的ping时间测量两台不同的机器。 然后将它们绘制在一个图上,并将其推断为零。
通常这样做的方式要简单得多 – 只需在同一个局域网上的一台计算机上进行testing,这样ping时间就不会超过一毫秒。
请注意,ping时间不仅仅包括networking延迟。 还包括其他计算机形成和发送响应的时间。