`

通过tcpdump和wireshark分析应用慢请求问题

    博客分类:
  • java
阅读更多

最近通过报警发现应用频繁有超过1s的慢请求,通过查看日志、tcpudmp和wireshark最后定位是网络问题,在排查过程中也参考了网上的很多文章,但是写的都不是全,现在有空分享一下问题排查的一些经验,希望对遇到类似问题的码农们有所帮助,具体排查步骤如下:

  1. 查看程序日志,程序中对超过100ms的请求都有日志输出,通过查看日志发现有大量的数据库和redis超时
  2. 查看redis的慢请求,redis并没有发现慢请求日志,redis慢请求查看的方法具体可以参考redis的文档:http://doc.redisfans.com/server/slowlog.html
  3. 查看数据库的慢查询日志,数据库也没有相应的慢请求
  4. 最后开始怀疑时间是耗费在连接数据库和redis的网络连接上,通过tcpdump命令dump出系统上一定时间的tcp请求,具体命令是
    tcpdump   -i  eth0  -s  0  -w  tcp_245.pcap   host  192.168.1.245
     其中-i参数指定抓取哪个网卡上的tcp请求,-w参数指定dump的文件目录 host参数指定抓取该ip发出和收到的请求,-s 0 : 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包,具体其它命令参数可以通过tcpdump --help查看
  5. 通过wireshark分析dump出来的tcp请求,首先需要在wireshark中找到想要的请求,这时需要通过IP和端口号先过滤出所有的redis请求,具体截图如下:

     其中ip.dst == 10.10.1.1 指定了redis所在的服务器ip, tcp.dstport == 7522指定了redis的端口号,过滤后明显发现有TCP Retransmission,即网络重传
  6. 为了确认是因为重传带来的时间损耗,需要过滤该次请求的完整记录,具体步骤:选择RetransmissionI的行--右键--选择追踪流--TCP流,截图如下:

     从图中可以看出重传的tcp包中的seq和ack跟上面tcp包中的seq和ack是完全相同,数据包的大小也完全一样,可以确认是同一个tcp请求发生了一次重试,但是从时间上看延迟了200ms,这只是其中的一个TCP请求,如果一个HTTP请求中会有10个左右的数据库和redis请求延迟时间会达到2s以上。
  • 大小: 163.3 KB
  • 大小: 124.9 KB
分享到:
评论

相关推荐

    Android中使用tcpdump、wireshark进行抓包并分析技术介绍

    在Android开发过程中,有时我们需要对网络通信进行深入分析,这时tcpdump和Wireshark成为强大的工具。本篇文章将详细介绍如何在Android设备上使用tcpdump进行抓包,以及在PC上使用Wireshark进行数据包分析。 首先,...

    tcpdump数据抓包及分析

    tcpdump和Wireshark是两个在该领域常用的工具,本篇文章将详细探讨它们的使用和分析方法。 tcpdump是一款强大的命令行网络数据包嗅探工具,广泛应用于各种Unix-like系统(包括Linux和macOS)。它的主要功能是实时...

    Wireshark - 使用WireShark进行报文分析简明教程

    Wireshark是一款强大的网络封包分析软件,它能够截取并深入分析网络中传输的数据包,展示出其中的详细信息。...通过学习和熟练使用Wireshark,测试团队可以更有效地诊断和解决问题,提高性能测试的精度和效率。

    tcpdump Android抓包工具

    1. 网络调试:开发Android应用时,可以使用tcpdump定位网络请求问题,查看数据包内容。 2. 安全检测:检测网络通信是否被中间人攻击,检查SSL/TLS证书。 3. 性能优化:通过分析网络流量,了解应用的网络负载,优化...

    抓包工具tcpdump

    例如,如果你发现手机应用程序的网络连接存在问题,可以运行tcpdump来查看应用发出的网络请求,分析请求是否正确,响应是否正常。 在Android设备上使用tcpdump,通常需要root权限,因为普通的用户权限无法访问底层...

    Android APP tcpdump抓包方法

    在Android开发中,tcpdump可以帮助解决各种网络问题,例如,检查应用程序是否正确发送和接收HTTP请求,排查网络延迟,检测数据包丢失等。此外,对于源码级别的调试,tcpdump也能提供宝贵的网络层信息,帮助理解应用...

    Android抓包工具tcpdump

    3. **性能优化**:分析网络请求的时间、大小和频率,有助于优化应用的网络性能,减少不必要的流量消耗。 4. **学习网络协议**:Tcpdump可以直观地展示网络协议的工作原理,是学习和理解网络协议的好工具。 **注意...

    Wireshark-win64-3.4.5.exe.7z

    Wireshark是一款强大的网络封包分析软件,广泛应用于网络故障排查、网络安全分析、协议开发以及教育领域。它的主要功能是对网络通信数据进行实时捕获、显示、分析和存储。Wireshark-win64-3.4.5.exe是Wireshark的64...

    tcpdump android 4.9.3/1.9.1

    tcpdump是一款广泛使用的网络封包分析工具,它能够捕获并分析网络上的数据包,帮助网络管理员和开发者诊断网络问题、排查安全漏洞以及理解网络流量模式。在Android系统上,tcpdump同样扮演着重要的角色,尤其对于...

    tcpdump抓包工具

    在Android平台上,tcpdump成为开发者和网络管理员诊断网络问题、监控应用程序网络行为的重要工具。它能深入到网络通信的底层,帮助我们理解应用程序如何与网络交互,从而找出潜在的问题或进行性能优化。 使用...

    tcp抓包工具,tcpdump

    在进行网络故障排查时,通常需要结合其他工具一起工作,比如Wireshark,这是一个图形化的网络协议分析工具,可以对tcpdump抓取的包文件进行更直观的分析和解码。Wireshark提供了丰富的过滤和搜索功能,使得查找特定...

    安卓版抓包工具tcpdump

    在IT行业中,网络数据包分析是一项至关重要的技能,它能帮助开发者、安全专家以及网络管理员了解网络通信的细节,诊断问题或检测潜在的安全...通过深入学习和实践,你将能够熟练运用tcpdump解决各种网络相关的问题。

    tcp连接转储tcpdump

    5. **性能问题**:通过分析TCP窗口大小和慢启动阈值,了解网络带宽和延迟对连接的影响。 通过tcpdump和Wireshark的结合使用,我们可以有效地定位并解决TCP连接中的问题,保障网络通信的正常运行。在实际工作中,这...

    安卓抓包tcpdump工具.rar

    7. 分析抓包结果:Wireshark是一款强大的网络分析工具,可以解析各种协议,帮助你理解app的网络行为,包括HTTP请求、DNS查询、TCP连接等。 8. 注意隐私和合规性:使用tcpdump进行抓包分析时,一定要确保你有合法的...

    Wireshark-win64-3.0.2.rar

    Wireshark是一款广泛使用的网络封包分析软件,它允许用户捕获并深入分析网络通信数据。这个名为"Wireshark-win64-3.0.2...通过学习和熟练掌握Wireshark,IT专业人士可以提升他们的网络分析技能,更好地理解和解决问题。

    tcpdump抓包

    5. **查看和分析抓包结果** 抓包完成后,你可以将pcap文件从Android设备上导出到电脑,然后使用Wireshark等工具进行分析。Wireshark是一款强大的网络协议分析器,它能显示数据包的详细信息,包括源/目标IP、端口、...

    网络抓包工具,WebService抓包工具

    网络抓包工具是IT行业中非常重要的诊断和分析工具,它们能够捕获网络中的数据包,帮助我们理解网络通信过程,排查问题,优化网络性能。在Web服务开发和测试中,尤其是对于WebService接口的调试,这类工具显得尤为...

    tcpdump & adb

    使用tcpdump,你可以看到应用程序发出的所有网络请求,包括HTTP、TCP、UDP等协议的数据包,这对于排查网络问题或分析应用通信细节非常有帮助。 adb是Android开发者必备的工具之一,它是连接Android设备与计算机的...

Global site tag (gtag.js) - Google Analytics