监控HyperV虚拟机的基本网络流量统计很简单但是由于HyperV中网络的虚拟化方式执行实际的数据包捕获就很难了下面是你的选择 计数器 最基本的监控是给定VM的简单带宽利用率这一点都不难HyperV有四个基本的网络性能计数器群组你可以记录和分析它们来了解HyperV本身和每个独立虚拟机的网络流量 网络接口这个计数器设置描述HyperV中使用的物理网络设备这种设置的计数器可用来查看HyperV中流入流出的流量作为一个整体运行得怎么样如果你的物理网络接口上有大量错误比如可能是适配器本身饱和了或者是HyperV连接的网络结构太慢了 HyperV虚拟交换机它让你可以统计HyperV虚拟机之间交换的流量还有一个相似的计数器设置叫做HyperV虚拟交换机端口它让你看到这个交换机上某个特定端口的数据统计 HyperV遗留网络适配器和HyperV虚拟网络适配器这两个性能计数器设置提供特定VM的网络活动详细信息这些计数器组中每一个的子设置都有一个VM易记的名字还有其网络适配器的名字加上VM和适配器的GUID防止了你想使用Windows管理规范(WMI)来查询它们的情况 这两个计数器设置的最大不同在于你监控的VM是否使用了集成服务很明显你想要在任何可能的时候使用集成服务并且使用虚拟网络适配器计数器(Windows Server 和之后版本都有预安装的集成服务所以你不用担心它们)没有集成服务运行的虚拟机需要使用遗留网络适配器计数器尽管这会带来一定的效能损失 数据包捕获 如果在一个HyperV实例中你想要监控所有来自或去向虚拟机的数据包级网络流量怎么办?也就是说你要进行数据包检查和网络捕获不幸的是现在还没有在HyperV本身中直接这么做的方法虚拟网络适配器还没有混合模式某种程度上是为了增强安全性和VM间的独立性也是为了保护管理程序本身 达成此目的的一种方式是通过在每个需要有数据包捕获设置的虚拟机上安装WireShark或相似产品出于多方面的原因这并不是一个理想的解决方案一方面你必须在每台机器上而不是每个管理程序上安装数据包捕获软件你也许可以通过软件部署来解决但是这是假设你捕获数据包的虚拟机都是运行Windows 但是图景正在发生改变Windows Server 中计划的一个新功能是扩展交换机系统这实现了扩展的捕获过滤和转送这些扩展都注入到HyperV的虚拟交换机堆栈中所以可以在HyperV上分别检查VM中流入和流出的流量这意味着要等HyperV 出现但是至少微软已经承诺了对这个特性的需求也正在为这个需求努力改变 |