Hyper-v性能优化:高级微调

 
   | |

导读:在本指南中,TechTarget中国的特约虚拟化专家Anil Desai将与大家分享更多Hyper-V性能优化的方法,重点是硬件和网络微调。

关键词:Hyper-V 性能优化 硬件 网络微调

 
正在加载数据... 【TechTarget中国原创】说到虚拟化性能优化,有一大堆最佳做法可以做到最充分地利用你的服务器。其中,微软公司出的虚拟化平台Hyper-V也不例外。

  在前面关于Hyper-V优化的指南中,我们已经讨论了理解Hyper-V应用和服务要求的重要性,以及了解如何监控虚拟机和管理CPU资源分配的重要性。在本指南中,TechTarget中国的特约虚拟化专家Anil Desai将与大家分享更多Hyper-V性能优化的方法,重点是硬件和网络微调。

【TechTarget中国原创】说到虚拟化性能优化,有一大堆最佳做法可以做到最充分地利用你的服务器。其中,微软公司出的虚拟化平台Hyper-V也不例外。

  在前面关于Hyper-V优化的指南中,我们已经讨论了理解Hyper-V应用和服务要求的重要性,以及了解如何监控虚拟机和管理CPU资源分配的重要性。在本指南中,TechTarget中国的特约虚拟化专家Anil Desai将与大家分享更多Hyper-V性能优化的方法,重点是硬件和网络微调。

  Hyper-V一体化服务(Integration Services)

  我们先看一个简单常用的做法:确保你使用的Hyper-V一体化服务(Integration Services)是最新版本。这个简单的程序会为支持的子操作系统(以及某些非正式支持的子操作系统)安装可用的最新驱动,从而提高虚拟机调用硬件时的性能。通常,这个工作应该是在子操作系统安装完成后所做的第一件事。请记住,一体化服务的最新版本可能是为了提升Hyper-V主要发布的性能而发布的。

  利用合成网络(synthetic network)驱动

  Hyper-V支持两种类型的虚拟网络驱动:模拟网络驱动和合成网络驱动。模拟驱动的兼容性最好,而合成驱动的效率更高。因为合成驱动使用了专门的VMBus以进行虚拟网卡和root/parent分区物理网卡间的通信。要检验Windows子操作系统内使用的驱动器类型,可以利用设备管理器查看。

  通过修改虚拟机属性,可以更改安装的网络适配器类型。为了让更改生效,有时需要关闭虚拟机或重启虚拟机。不过,通常这样的做法还是有价值的。如果合成驱动兼容,CPU利用很可能会更低,网络反应也更快。

  增加网络容量

  网络性能对各种应用和服务来说是至关重要的。无论是运行一台或是几台虚拟机,主机服务器使用一个物理网卡通常就可以了。但是如果有很多台虚拟机争夺资源,而且还要执行物理网络层安全性,那就该考虑为主机服务器添加几Gb的以太网卡了。有的网卡支持端口聚合(teaming)功能,聚合功能可以执行负载平衡或自动故障解决(automatic failover)。此外,支持TCP卸载等功能的网卡还可以通过管理网络接口层从而提升性能。在root/parent分区网络适配器的驱动中,确保启用此项功能。

  只要有可能,都可以使用一个方法,就是将虚拟机分别隔离到不同的虚拟交换机(Virtual switch)。考虑到虚拟机划分的安全性和性能因素,每个虚拟交换机可以连接一个不同的主机物理网卡端口。对于使用同一虚拟交换机的不同虚拟机组,还可以使用VLAN标记为其分流。
  
  降低OS负担

  在虚拟主服务器中运行一个完整版的操作系统可能有一个缺点,就是OS负担太大。利用Server Core安装选项,你可以将Hyper-V部署到精简版的Windows Server 2008。这个配置缺少标准的管理工具,不过,还是可以降低不少OS负担。此外,它还降低了服务器的安全“surface area”,减少了许多可能抢占资源的服务和进程。它的确可以算是一款精简版的Windows 操作系统,针对许多特殊任务进行了优化。你需要用远程管理工具从另一台Windows机器上管理Hyper-V。不过,其性能优势使其值得我们一试。

  虚拟CPU和多处理器内核

  对于Windows Server2008子操作系统,Hyper-V最多可以支持4个虚拟CPU,对于其它各种支持的操作系统,可以支持2个虚拟CPU。这引发的问题是:我们应该什么时候使用这项功能呢?很多应用和服务是以单线程的方式运行的,这就导致了一个常见的问题:当只有一个应用时,服务器上的2个CPU会被视为分别利用50%。从子操作系统和hypervisor本身来看,处理器内核间CPU调用会非常繁杂。因此,你应该只为某些虚拟机使用多虚拟CPU,这些虚拟机的应用和服务必须能够受益于多虚拟CPU。

  内存问题

  根据以往经验,一台虚拟机所分配的内存大小应该和同样负荷的一台物理机器的内存大小相当。不过,这并不是说你应该浪费物理内存。运行一个子操作系统和所有必要的应用和服务,如果你非常清楚需要多大内存,那你就按这个大小分配吧。此外,你还应该额外地分配少量内存用于虚拟化相关的应用(通常,额外分配64MB就足够了)。

  如果可用内存空间不足,可能导致很多问题,如子操作系统内过多的内存分页。内存分页过多的问题可能会很具迷惑性,因为它起初看起来可能像是磁盘I/O性能的问题。最根本的原因通常是因为虚拟机分配的内存空间太小。在对数据中心进行全面更改之前,监控应用和服务的内存需求是很重要的。在虚拟机中进行内存需求监控极其容易。

  SCSI和磁盘性能

  对很多虚拟机类型而言,磁盘I/O性能通常是一个瓶颈。你可以利用虚拟集成开发环境(IDE)控制器或SCSI控制器将虚拟硬盘(VHD)附属到一台Hyper-V虚拟机。IDE控制器是默认的,因为它对很多子操作系统都支持,具有最好的兼容性。不过,SCSI控制器可以减少CPU负担,让虚拟SCS总线能够同时执行多个任务。如果你的工作是磁盘密集型的,请考虑只用虚拟SCSI控制器(如果子操作系统支持这个配置)。如果不行,就额外添加SCSI连接的VHD(最好是分开存储于主机服务器上物理轴或阵列的VHD)。

  快照管理 

  Hyper-V的快照基础设施方便快捷,易于使用。不需要任何初始化设置,只需点击下鼠标,新快照就创建好了。不过,储存的快照过多也有个缺点。当你创建一大堆快照之后,Hyper-V就不得不执行很多读取操作。Hypervisor必须检查很多硬盘文件以找到最新数据,而且,这会增加很多物理I/O负荷。如果你有很多虚拟机,每台虚拟机有多个快照,问题就更复杂了。更多信息,请参阅我的“Hyper-V快照”指南。

  解决这个问题的办法很简单:删除所有子虚拟机不再需要的快照即可。

  综述

  老实说,本文所述远不够完整。不过,希望本文所讨论的能帮助你提高Hyper-V主机服务器效率。尽管你要完全吸纳这些最佳做法还需要一些时间和努力,我相信它们会很快为你服务。

  关于作者:Anil获得了MCSE、MCSD和MCDBA认证,同时也是微软MVP。他写作或合著了将近20本技术书籍,包括几本微软认证参考指南。

 
查看全文
 
 
 
 
 

虚拟机性能管理

 
在许多案例里,虚拟机环境中早期的小错误会导致一些大型的性能问题发生。这些问题可能看起来是非常明显的简单错误,但是请记得再检查一下您的设置,或许您会有大的发现。
 
P2V迁移好处多多,但是在哪个工作负载可以虚拟化有限制,并且这个选择过程对于维护稳定的服务器环境非常关键。该怎么办呢?
 
如果你并不需要在同时运行多种不同类型操作系统环境下工作,基于容器(container-based)的虚拟化也许是一个更佳的选择,它能为用户带来性能优势。
 
如今,VMware在其vCenter产品家族完善了三个新品:VMware vCenter AppSpeed、Chargeback及Lab Manager的更新版本。
 
在上周,F5 Networks宣布将集成vSphere和vCenter Server,以帮助用户管理虚拟环境及自动化更多的应用交付过程。
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录