我想知道关于客户端 - 服务器环境中不同实体的往返时间的经验法则。时间安排是为了理解在调用链的不同部分提出请求的成本。也就是说,了解系统可能出现的SELECT N + 1问题的影响。假设我们有以下实体
client <-> server <-> dbserver <-> disc access (on db server)
假设
时间可能包括发送数据,处理另一端以及返回新数据。
我的直觉告诉我
客户&lt; - &gt;服务器是1-2秒
服务器&lt; - &gt; dbserver 200毫秒
dbserver&lt; - &gt; harddrive 15-40毫秒
你有什么经历?
答案 0 :(得分:2)
从客户端到服务器发送4KB~57ms((4KB / 512KB / s)+0.050s) 服务器的处理时间〜1ms 从服务器发送4KB到db~1ms((4KB / 10MB / s)+ 0.001s) 处理时间为db~1ms 读取db~1ms的RAM或读取db~2ms(4KB / 2MB / s)的硬盘读取 从db发送4KB到服务器~1ms 从服务器到客户端发送4KB~54ms((4KB / 1MB / s)+0.050s)
总往返行程~117ms (57ms + 1ms + 1ms + 1ms + 2ms + 1ms + 54ms)
问题在于很多层次上的asinine。大多数IT专业人员不会尝试估算他们可以通过简单的定时测试获得的价值。不同的硬件会大大改变结果。