我有2个服务器,每个在两个不同的位置。 我需要在一个上托pipe一个应用程序,而在另一个上托pipe一个数据库服务器。
从应用程序服务器,如果我ping数据库服务器,平均我得到约30毫秒。
我的问题是:
When I query the database from the app;
是否需要
30 ms + database_server_query_run_time
要么;
是否需要
30 ms + database_server_query_run_time+ 30ms
我想了解这个请。
它通常会采取更多的这两个选项。
Ping只测量从客户端到服务器的时间,然后再返回(rtt – 往返时间)
通常数据库使用TCP,所以你首先需要发送一个SYN数据包来启动TCP握手(为了简化让我们说15ms * + cpu时间,那么你接收和SYN / ACK(15ms + cpu时间),发回一个ACK和一个请求(至less15ms + cpu时间),然后是数据库处理查询的时间,然后是获取数据的时间(15ms + cpu),再多一点,然后closures连接。
这当然不包括对数据库的authentication(用户名/密码),也没有encryption(ssl握手/ DH或任何需要的)。
*往返时间的一半,假设路由是对称的(一半的时间到达那里,一半回来… cpu的处理时间为ping答复很短)
平时是往返。 如果你仔细想想,它怎么能衡量单向的时间呢? 所以需要30ms加上查询时间。