前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >性能分析之响应时间拆分(TCP视角)

性能分析之响应时间拆分(TCP视角)

作者头像
高楼Zee
发布2021-04-22 10:48:30
1.2K0
发布2021-04-22 10:48:30
举报
文章被收录于专栏:7DGroup
背景

因为在性能测试过程中,我们经常会遇到响应时间长的情况。在我的性能工程逻辑中,一直在说的一个话题就是响应时间的拆分。但还是有很多人不理解响应时间应该如何拆分到具体的某个主机或某个节点上去。 响应时间的拆分有几个不同的角度。

  1. 通过日志做拆分:如果整个链路的日志都比较齐全,通过日志是可以做得到的。只是我们做的时候需要整理大量的日志。这种方法的好处是不用多做什么动作,因为应用的日志是一直在记的。
  2. 通过APM工具做拆分:当前的APM工具几乎都具有这样的能力,就是把一个链路上所有涉及到的接口都列出来,所以可以从APM工具的角度把一条链路上的所有接口的响应时间都抓取出来。并且APM工具也可以从trace ID的角度,把调用的每个节点时间拆分出来。
  3. 通过抓包拆分:既然有上面两招,为什么还需要这招呢?因为不管是日志还是APM,都无法把一个请求细化到每个数据包的级别。而只有抓包的方式是可以做到这一点的,同时,如果从tcp的角度来跟踪流的话,可以看到一个tcp流中每一个发送和响应的时间间隔,从而更精准地定位一些疑难的问题。

本文就是用来说明第三招的。

环境说明

我准备一个简单的逻辑来说明在时间拆分的时间,如何从tcp角度来拆解数据。 执行动作如下:

  1. jmeter发起压力
  2. 在jmeter机器上用wireshark抓取数据包
  3. 在服务器上抓取数据包

拆分时间

压力机上的包过滤

从上图可以看到,压力机发出了很多的数据。在这一步要注意,如果所有请求都慢,倒是比较容易选择一个慢的请求;但如何只有某个请求慢,你需要仔细过渡一下。

  1. 首先,我们得知道自己要找的是哪个接口。比如我们要找的是/pab/add接口。就编写过滤条件为:http.request.url=="/pab/add"。得到如下结果:
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 7DGroup 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境说明
  • 拆分时间
    • 压力机上的包过滤
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档