对一个系统的功能环境做压测,响应时间特别慢,开发环境却很快。
原因是,开发的应用服务器在北方,功能的应用服务器在南方,数据库服务器共用一个,在北方。
北方的应用调北方的数据库,响应时间2s,互相ping ip 响应时间小于1ms。
南方的应用调北方的数据库,响应时间27s,互相ping ip 响应时间44ms。
dynatrace部署在南方功能的应用上,他记录了sql共执行了17s,其中一条总耗时600ms,执行10次,即每次60ms左右,这是南方访问北方一条sql的耗时。
北方服务器直接执行sql,耗时是12ms,60ms-12ms=48ms,这就是一条sql执行一次要加上南北网络延时44ms,10次就多了440ms,100多条sql,每条都要加网络延时。
所以,在测试前,要问清楚服务器位置,考虑到网络延时对压测的影响,这是APM性能监控工具看不到的。
另外,dynatrace可以通过API细分,看到各种请求类型,其中查看jdbc,可以看到数据库连接的具体数据库名称。