写点什么

如何从抓包文件中分析慢请求

  • 2023-06-07
    广东
  • 本文字数:948 字

    阅读完需:约 3 分钟

如何从抓包文件中分析慢请求

请求慢的原因很多,当出现前端反应接口慢时,而通过后端日志查看请求处理时间并不慢时,往往会手足无措,当面对网络问题出现手足无措时,这就是在提醒你该抓包分析了,那么一般如何根据抓包文件去分析慢请求呢,今天我们就来看看。

抓包文件分析

准备用我在测试环境抓到的包去进行分析,首先执行抓包命令。


sudo tcpdump   -i lo  port  6310 -w http.pcap
复制代码


-w 命令能让我在服务器上抓到的包保留到 http.pcap 文件里,然后我将这个文件从服务器上 dump 下来,用 wireshark 去进行分析。

tcp delta time

首先来看看对于 tcp 包和延迟相关的属性。



follow 一个 tcp 流



有关 tcp time 的时间信息在协议的传输层,点击查看可以发现有两个列,分别是


[Time since first frame in this TCP stream: 0.036151000 seconds][Time since previous frame in this TCP stream: 0.032279000 seconds]
复制代码


Time since first frame 代表在该 tcp 流中,这个 tcp 包距离第一个 tcp 包相隔多少时间。


Time since previous frame 代表这个 tcp 包距离上一个 tcp 包相隔多少时间。


我们还可以将 Time since previous frame 设置为自定义列,然后按这个时间排序就可以找出从传输层的角度延迟比较大的包了。


操作如下:


因为默认 wireshark 会解析 http 协议,这不便于我们单独的查看传输层的 tcp 包,所以把 http 协议的解析先关闭下。



接着将 Time since previous frame 设置为自定义列,并对其进行排序



这样便可以找出是哪个 tcp 包延迟过大,进而可以针对它做具体的分析。

http time

除了在传输层的针对 tcp 的延迟分析,同样可以针对应用层做延迟分析,通过 http.time 可以得到慢 http 请求信息。



这样便能在抓包文件中一下定位到慢 http 请求,我们甚至可以保存这个过滤器,以便下次抓不同包的时候能直接应用上这个过滤器,像下面这样操作


bad Tcp

无论是 http time 还是 tcp delta time 都是发现延迟的利器,但要弄清楚究竟为什么发生延迟,还需要从 tcp 的行为去分析原因。


在 wireshark 中异常的数据包可以通过 tcp.analysis.flags 过滤器去筛选出来。



它可以筛选出异常的 tcp 数据包,比如重传,duplicated Ack ,找到异常数据包以后便可以快速的根据异常包的上下文去分析异常的原因了。

总结

🔥🔥性能优化,服务监控方面的知识往往涉及量广且比较零散,我会持续输出这方面的内容,将这部分知识整理成册,愿以后性能排查不再抓瞎。

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2020-09-17 加入

还未添加个人简介

评论

发布
暂无评论
如何从抓包文件中分析慢请求_Wireshark_蓝胖子的编程梦_InfoQ写作社区