奇怪的VM高网络接收吞吐量问题查找

简介:

问题

我们的虚拟环境是Hyper-V ,一次在SCVMM上优化了一个VM的动态内存设置后,把SCVMM的视图调整了一下,加了一些性能参数列。在我按照网络吞吐量进行排序时发现,一个很普通的VM的接收吞吐量在TOP1,当时只是觉得可能是瞬间的流量,没有太在意。后面看了几次都在TOP5 之内,觉得问题可能不正常。
奇怪的VM高网络接收吞吐量问题查找

排错步骤

  • VM不太好登录上去看,但是在Hyper-V环境,我们有更好的方法可以进行抓包。那就是Hyper-v网络的高级功能,PORT Mirroring。(大概步骤就是你把VM的网卡设置为镜像的Source,然后在另外一个专门抓包的VM的网卡上设置镜像的Dest),然后你就可以抓Source 的数据包了。参考这个文章配置Hyper-v Network Port Mirroring.

  • 我们的专门抓取数据包的是个centos 7的VM ,这是一个含有工具箱的机器,可以在多个机器上漂移,用来排错,在设置了Port Mirroring后,我们这个VM的第二个网卡上设置成promisc,然后抓了一小段时间的数据包。

    ifconfig eth1 promisc
    tcpdump -i eth1 -w client4.cap
    

揭开真相

  • 拖下来cap包用wireshark进行分析,先对协议进行统计,有个dcerpc的协议占用了75%左右的流量。

奇怪的VM高网络接收吞吐量问题查找

奇怪的VM高网络接收吞吐量问题查找

高峰大概在4Mb/s 了,平均2.5Mb/s 左右,那么如果仔细计算下,60秒就是1分钟的数据量大概就是150Mb,那么10分钟就是1.5Gb,有点吓人,比备份系统的流量都高。

wireshark 对DCE/RPC的解释在这里,而且DCE/RPC的数据主要是和AD的Domain Controller进行交互,就我们内部的应用来看这个很像是使用DCOM访问的数据。

  • 登录到VM本地看看,发现有个深信服的ADSSO应用在这里运行,应该就是它了。看看深信服ADSSO的介绍。

奇怪的VM高网络接收吞吐量问题查找

  • 然后本地还有ADSSO的日志,我们看到大量的warning,肯定无疑这个应用的问题了。

最后总结

  • 没有头绪时需要一步步缩小范围才能定位到问题实质,这个问题我们只能找到问题点,虽然自己没有办法解决,但已经确定到一个非常小的点了,下一步看厂商怎么解决。曾经想反编译下应用代码,看看到底是什么逻辑,这效率太低了。后面发现代码是VC写的,反编译到代码比较麻烦

本文转自 yoke88 51CTO博客,原文链接:http://blog.51cto.com/yoke88/2055575
相关文章
|
存储 Python
Python网络编程基础(Socket编程) UDP 发送和接收数据
【4月更文挑战第10天】对于UDP客户端而言,发送数据是一个相对简单的过程。首先,你需要构建一个要发送的数据报,这通常是一个字节串(bytes)。然后,你可以调用socket对象的`sendto`方法,将数据报发送到指定的服务器地址和端口。
|
10月前
|
网络协议 Linux 虚拟化
配置VM网络:如何设定静态IP以访问主机IP和互联网
以上就是设定虚拟机网络和静态IP地址的基本步骤。需要注意的是,这些步骤可能会因为虚拟机软件、操作系统以及网络环境的不同而有所差异。在进行设定时,应根据具体情况进行调整。
645 10
|
域名解析 API PHP
VM虚拟机全版本网盘+免费本地网络穿透端口映射实时同步动态家庭IP教程
本文介绍了如何通过网络穿透技术让公网直接访问家庭电脑,充分发挥本地硬件性能。相比第三方服务受限于转发带宽,此方法利用自家宽带实现更高效率。文章详细讲解了端口映射教程,包括不同网络环境(仅光猫、光猫+路由器)下的设置步骤,并提供实时同步动态IP的两种方案:自建服务器或使用三方API接口。最后附上VM虚拟机全版本下载链接,便于用户在穿透后将服务运行于虚拟环境中,提升安全性与适用性。
1215 7
|
缓存 算法 物联网
基于AODV和leach协议的自组网络平台matlab仿真,对比吞吐量,负荷,丢包率,剩余节点个数,节点消耗能量
本系统基于MATLAB 2017b,对AODV与LEACH自组网进行了升级仿真,新增运动节点路由测试,修正丢包率统计。AODV是一种按需路由协议,结合DSDV和DSR,支持动态路由。程序包含参数设置、消息收发等功能模块,通过GUI界面配置节点数量、仿真时间和路由协议等参数,并计算网络性能指标。 该代码实现了节点能量管理、簇头选举、路由发现等功能,并统计了网络性能指标。
586 73
java网络编程 UDP通信协议实现局域网内文件的发送和接收
java网络编程 UDP通信协议实现局域网内文件的发送和接收
506 1
java网络编程 UDP通信协议实现局域网内文件的发送和接收
|
网络协议 网络虚拟化
接收网络包的过程——从硬件网卡解析到IP
【9月更文挑战第18天】这段内容详细描述了网络包接收过程中机制。当网络包触发中断后,内核处理完这批网络包,会进入主动轮询模式,持续处理后续到来的包,直至处理间隙返回其他任务,从而减少中断次数,提高处理效率。此机制涉及网卡驱动初始化时注册轮询函数,通过软中断触发后续处理,并逐步深入内核网络协议栈,最终到达TCP层。整个接收流程分为多个层次,包括DMA技术存入Ring Buffer、中断通知CPU、软中断处理、以及进入内核网络协议栈等多个步骤。
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
2875 3
|
缓存 安全 Web App开发
Chrome插件实现问题之网络进程接收到URL请求后会如何解决
Chrome插件实现问题之网络进程接收到URL请求后会如何解决
计算机网络——计算机网络的性能指标(上)-速率、带宽、吞吐量、时延
计算机网络——计算机网络的性能指标(上)-速率、带宽、吞吐量、时延
1833 1
|
设计模式 监控 网络协议
socket通信处于网络协议那一层和两种接收发送消息方式
socket通信处于网络协议那一层和两种接收发送消息方式
771 2