基于抓包工具分析耗时问题
背景
- 开发了某个http接口,在测试耗时的时候发现,客户端耗时远大于服务端代码打印的耗时,初步判断耗时出在框架和网络层面,主要应该是网络
- 以这个问题为例,介绍通过tcpdump和ngrep抓包分析耗时的过程
实践
操作步骤
-
在客户端使用time +curl命令,可以打印出客户端的耗时,示例如下
请求
time curl --location --request GET 'http://10.89.43.18:8083/path'
耗时结果
0.01s user 0.01s system 13% cpu 0.120 total
可以发现,客户端总耗时为120ms
-
使用tcpdum抓包分析
tcpdump抓包命令
tcpdump -nn -i eth0 port