当前位置: 首页 > article >正文

wireshark抓包问题及学习

wireshark抓包问题及学习

【场景1】服务A请求服务B经常超过3s,报错i/o timeout,想看下是否网络波动或者负载太高。需要抓包分析。

问题1:

超时时间不定,且请求量过大,一直抓了存文件里抓包文件过大。

解决学习:

每10分钟覆盖重写文件,在确认慢请求复现后,立即停止抓包。

-i 指定监听的网络接口;
-G 指定每隔N秒就重新输出至新文件;
-W 指定输出文件的最大数量,到达后会重新覆写第 1 个文件;
-w 输出结果至文件。
sudo tcpdump -i eth0 -G 600 -W 1 -w /tmp/tcpdump.pacp
ps -ef|grep tcpdump # 获取tcpdump的进程号
kill -9 PID # 停止抓包

问题2:

在服务B的主机上抓取到包后找到对应慢请求时间段后,不知如何分析,是哪里的问题。

解决学习:

网络组同事帮忙排查,异常颜色报文中,显示Window:0,分析为窗口已满,给出了调大服务器上窗口值限制的建议。

cat /proc/sys/net/ipv4/tcp_window_scaling
cat /proc/sys/net/ipv4/tcp_rmem
cat /proc/sys/net/ipv4/wmem

参考 TCP系列32—窗口管理&流控—6、TCP zero windows和persist timer
理解触发zero window的原因和过程是:服务B所在主机的TCP端口一直接收数据,但是B应用层没有及时读取,数据一直在TCP模块中缓存,最终受限于主机接收缓存的大小,window size会变为0。
应用层面排查是因为服务B加载了太多引擎,导致一笔请求会处理很长时间,从应用层面解决是关闭无用引擎,减小处理耗时。


http://www.kler.cn/a/234306.html

相关文章:

  • WebAssembly在现代Web开发中的应用
  • MacOS 本地生成SSH key并关联Github
  • pySpark乱码
  • 移动端【01】面试系统的MVVM重构实践
  • 【pytorch】常用强化学习算法实现(持续更新)
  • 【mySql 语句使用】
  • Uniapp(uni-app)学习与快速上手教程
  • vue3初识
  • Qt PCL学习(三):点云滤波
  • 2024.2.10 DMS(数据库管理系统)初体验
  • 【知识整理】技术新人的培养计划
  • 关于创建vue项目报错command failed: npm install --loglevel error
  • 蓝桥杯刷题--python-4
  • 4核8G服务器配置性能怎么样?12M带宽配置服务器能干什么?
  • Git详细讲解
  • jsp教材管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • .gitlab-ci.yml文件参数配置和使用
  • 电脑空间爆满解决方法
  • c++之说_11|自定义类型 enum(枚举)与enumclass (c11新枚举)
  • Apache网站部署
  • 应用层 HTTP协议(1)
  • 《动手学深度学习(PyTorch版)》笔记8.3
  • 【笔记】Helm-5 Chart模板指南-11 子chart和全局值
  • 学习之旅9------JavaScript面向对象编程(OOP)全面解析
  • 【数据分享】1929-2023年全球站点的逐日降水量数据(Shp\Excel\免费获取)
  • 13.Swift元组