0

我想知道您的关于客户机 - 服务器环境中不同实体的往返时间的规则。时间安排是为了了解在呼叫链的不同部分提出请求的费用。也就是说,感受一下在系统中可能出现的SELECT N + 1问题的影响。假设我们有以下实体客户机 - 服务器系统中往返时间的粗略估计

client <-> server <-> dbserver <-> disc access (on db server) 

假设

  • 客户端与服务器通过
  • 服务器和DBSERVER连接在同一交换机
  • 的DBSERVER在互联网上连接有一个合理的内部硬盘
  • 客户端请求很小,并且与服务器的结果相同。每个在1-4 KB的愤怒。

计时可能包括发送数据,处理另一端和返回新数据。

我的直觉告诉我,

客户< - >服务器是1-2秒

服务器< - > DBSERVER 200毫秒

DBSERVER < - >硬盘15-40毫秒

你有什么经验?

+2

这很明显是一个字符串有多长?问题。此外,为什么在地球上会想要*猜测*而不是*量* *? – NPE

+0

我想在一般性讨论中为新手程序员学习一些一般性措施。 –

+0

然后,不要给他们事实记住给他们的策略,找到自己的信息。 Ping,tracert,代码和数据库查询分析。 –

回答

2
  • 客户为例平到服务器〜100毫秒(往返时间)
  • 客户端连接〜512KB/S UP〜1MB/s的DOWN(廉价宽带/ DSL)
  • 服务器Ping到DB〜1ms的
  • 服务器连接(以DB)〜10MB /秒UP〜10MB /秒DOWN(廉价的局域网连接)
  • DB硬盘 “随机” 读/写〜2MB/s的读取〜1MB/s的写入(HDD)
    • 但DB可能会被缓存ÑRAM〜6GB/s的带宽

从客户端发送到4KB服务器〜57ms((4KB/512KB /秒)+ 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)

往返总次数〜1 17MS(57ms + 1毫秒+ 1毫秒+ 1毫秒+ 2MS + 1毫秒+ 54ms)


的问题是在很多的层次愚蠢。大多数IT专业人员不会试图估计他们可以从简单的定时测试中获得的价值。不同的硬件会有很大的差异。

+0

这不是估计,而是让新手明白“N + 1 SELECTION”发生的位置,它是如何根据发生的地点来伤害性能的......并且访问例如数据库也会在请求过多时导致问题对数据库进行一个单一的响应到客户端。我也很惊讶你的硬盘能够在几ms内响应。 –

相关问题