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

问题

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

排错步骤

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

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

    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访问的数据。tcp

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

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

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

最后总结

  • 没有头绪时须要一步步缩小范围才能定位到问题实质,这个问题咱们只能找到问题点,虽然本身没有办法解决,但已经肯定到一个很是小的点了,下一步看厂商怎么解决。曾经想反编译下应用代码,看看究竟是什么逻辑,这效率过低了。后面发现代码是VC写的,反编译到代码比较麻烦
相关文章
相关标签/搜索