当前位置: 首页 > 科技观察

如何优化VMwarevSphere的性能?

时间:2023-03-18 16:54:58 科技观察

前言本文主要介绍如何优化VMwarevSphere架构的CPU、内存、存储、网络和虚拟机的性能。它将贯穿概念中性能局限的领域,破除虚拟化与性能矛盾的旧观念。最重要的是通过小案例展示如何在虚拟化环境下实现性能调优,让虚拟化技术发挥最大的作用。优势,助力业务提升效率,按需扩展,灵活多变。具体的软件实现本文不做详细介绍。有需要的朋友可以参考文末的“参考资料”。CPU性能优化CPU资源的分配对于确保虚拟化环境的最佳性能非常重要。现在的处理器普遍都配备了每个进程的多核处理器,同时也提供了多种技术来帮助提高虚拟化环境的性能,例如Intel-VT和AMD-V等硬件虚拟化和加速技术。CPU虚拟化技术使一个虚拟机可以直接在一个物理处理器上执行大部分指令,并且可以使多个虚拟机一起运行来直接访问一个物理处理器。物理CPU与虚拟CPU的关系在优化CPU性能之前,了解什么是物理CPU是一个重要的前提?什么是虚拟CPU?目前几乎所有的处理器,不管是X86架构还是Power架构,每个封装都有多个物理处理器核心。一般规格有4、6、8、12芯,有的甚至更多。在VMwareESXi中,每个物理处理核心都被检测为一个物理CPU。如果英特尔处理器有超线程,那么每个物理处理器核心都会有两个硬件线程。ESXi可以将每个线程检测为一个物理CPU。虚拟CPU是指虚拟机上的CPU,每个虚拟机至少配置一个虚拟CPU。VMM调度每个虚拟CPU在任何可用的物理CPU上运行,并且可以定义任何虚拟机在给定时间可以同时访问的物理CPU的数量。ESXiCPU是如何工作的?VMwarevSphereESXi中的CPU通过复杂的调度算法接收并执行用户和外部的指令,按照设定的策略依次执行。下面将介绍CPU在ESXi中的几个主要动作。CPU比例分配算法:当多个虚拟机之间发生资源竞争时,ESXi使用比例分配算法来确定哪个虚拟机应该使用更多的CPU和内存资源。比例分配算法允许VMwareESXi调度程序通过将每个执行上下文与可用物理处理器资源的份额相关联来执行关键的调度计算。根据共享、保留、限制等资源分配准则,将计算出的共享权分配给各个执行上下文。CPU联合调度:我们常见的联合调度分为严格联合调度和松散联合调度。这种严格的联合调度主要见于早期版本的VMwareESXi。在执行联合调度时,CPU调度器会在多处理器虚拟机的每个微型CPU上有一个累积的偏移量。当单进程应用程序运行在多处理器虚拟机上时,只有一个微CPU在物理处理上运行,而其他微CPU处于空闲状态,因此只需要一个物理CPU可用。松联合调度主要出现在VMwareESXi5之后,可以单独跟踪每个虚拟机上的每个微CPU进程。偏移值是通过最慢的微型CPU与所有其他微型CPU之间的差异来衡量的。拥有。ESXiCPU性能调优众所周知,VMware是虚拟化领域的老大,其对ESXi虚拟化层的默认设置可以满足大部分企业在性能方面的应用场景和需求。对于要求更高的业务需求,采用默认设置可能会阻止虚拟化发挥其最大优势。如何调优成为管理员的必备要求。如何诊断CPU性能?性能调优最关注哪些指标?能否帮助管理员尽快定位问题?VMware在众多管理命令中提供了一个名为ESXtop的命令。通过输出结果,可以清楚的看到CPU等相关的性能问题。管理员以root身份登录ESXi服务器,输入C切换到CPU分析界面。除了监控CPU,还可以观察内存和网络的性能。具体使用方法不在本文讨论范围内。表1:VMwareesxtopCPU性能指标表内存性能优化内存的运行速度比硬盘快很多,所以一般来说,内存越大,服务器的应用速度越快。所有的ESXi作为VM的载体,都必须有大内存的支持。那么在讲解内存性能之前,我们先介绍一下ESXi中的一些内存层。虚拟主机的物理内存是指实际物理主机的物理内存。例如一台物理内存为256G的服务器,其实际物理内存为256G;虚拟机的物理内存是指管理员实际分配给虚拟机的内存。内存,虚拟机可以直接调用的内存,只对分配的虚拟机可见;虚拟机的虚拟内存是指虚拟机操作系统分配给应用程序的可用内存,是虚拟机操作系统映射到虚拟机内存地址空间的物理内存;ESXi内存如何工作那么ESXi虚拟化软件如何管理硬件的物理内存呢?实现多台虚拟机同时运行,内存相互隔离,保证数据稳定可靠。首先,ESXi会将所有物理内存虚拟化,为运行在其上的不同虚拟机创建连续的虚拟内存地址空间。这些内存地址空间映射到虚拟机的物理内存中,形成不同的内存空间。内存空间相互隔离,保证虚拟机内容的独立性和安全性。所有物理内存分配调用都需要ESXi来管理。特别需要注意的是,在为虚拟机分配物理内存之前,ESXihypervisor会将宿主机的物理内存重置为零,以避免宿主机上不同虚拟机之间的信息泄露,造成页面错误。内存回收虚拟化中的内存回收是一个很专业的话题,技术难度也很高。目前只有VMware实现了内存过大的管理功能。VMware为了实现内存的回收,主要采用以下几种方式。不同的环境使用未提供的方法来避免性能瓶颈,影响虚拟机的正常运行。透明页面共享透明页面共享(TPS)是回收主机物理内存的一种简单而有效的方法。其原理是将同一个图像或应用程序的内存冗余页面做成一个单一的共享页面,只保留内存页面的副本。从而减少了虚拟机宿主机占用的内存总量,可以为不同页的虚拟机提供更多的内存,从而也实现了内存复用。内存扩展为了实现内存扩展,需要在每台虚拟机上安装VMwareTools,因为Tools内置了内存扩展驱动来实现这个功能。当ESXi物理内存压力较大时,会触发内存扩容机制回收内存。hypervisor会通知虚拟机上的内存扩展驱动分配“空闲”的虚拟机物理内存页,给超过阈值的虚拟机扩展内存。当然,默认情况下不启用它。启用该功能会在一定程度上影响虚拟机的性能。内存压缩ESXi使用内存压缩技术压缩应分页到磁盘的一部分虚拟机内存。压缩内存页面存储在虚拟机主内存中的压缩缓存中。当检测到内存页压缩率低于50%时,内存页不会被压缩,而是通过hypervisormemoryswap交换到磁盘上。ESXi只会使用管理程序交换未压缩的内存页,而不会压缩内存页。内存页面交换到磁盘。Hypervisormemoryswap在VM的配置文件中,有一个后缀为.vswp的文件,就是内存交换文件。通过这种方式,ESXi可以将虚拟机使用的物理内存与物理磁盘设备进行交换,从而达到释放内存的目的。这个文件是在虚拟机启动的时候创建的,文件大小和虚拟机的内存一样。ESXi的内存性能调优控制了内存占用的比例,即利用率,这是保证虚拟机和主机的稳定和优越性能的前提。ESXi有一个内置的内存性能调整工具——ESXtop。VMware虽然支持内存过剩技术,但还是建议不要随便使用。毕竟内存过多会造成内存膨胀和内存交换,影响虚拟机的整体性能。表2:VMwareesxtop内存性能指标表存储性能优化在设计虚拟化架构时,我们不仅考虑了CPU、内存、网络等因素,还对存储进行了精心设计。不同的业务需求对存储类型有不同的要求。因为存储平台不同,意味着使用的协议和存储特性也不同。速度并不是选择合适存储的唯一标准,因为协议、连接性、现有基础设施和成本都会综合在一起。目前,存储主要分为以下三种类型:存储区域网络,简称SAN,是提供块级存储设备的专用网络。主机和存储通过光纤连接,接口连接常采用光纤交换机。SAN提供了一个存储中心,与它配合使用,可以起到稀释本地存储的作用。主要协议是互联网小型计算机系统接口(ISCSI)、以太网光纤通道(FCoE)和光纤通信(FC)。网络文件系统除了块存储,ESXi还支持与网络文件系统(NFS)的连接共享,以存储虚拟机和相关模板。主要通过网络传输,不需要额外购买HBA卡。VirtualSAN,又称VSAN,是VMware在vSphere5.5之后推出的新特性。去除了使用NFS和SAN的限制,同时保证了数据的高可靠性。通过将ESXi本地磁盘聚合在一起并将共享数据存储呈现给ESXi主机。支持横向和纵向的灵活扩展,也是VMware最近推出的存储架构。如何设计物理存储合理设计和选择物理存储是虚拟化解决方案成功的重要一环。存储设计的好坏直接影响到整个虚拟化环境的性能。存储类型、RAID配置、网络和许多其他方面都会对虚拟化环境的性能产生很大影响。以下是共享存储的设计建议:业务需求技术永远是为业务服务的,任何优秀的架构设计都需要对业务需求有透彻的理解,否则最终的架构将没有任何价值。因此,业务需求的确定是设计过程的第一步。RAID级别也称为磁盘冗余阵列。不同的RAID级别可以满足不同级别的业务需求。简单地说,RAID是一种将多个物理硬盘组合起来,呈现为一个或多个逻辑硬盘的技术。主流的RAID级别有0、1、5、10等,数字越大,安全级别越高,防止数据丢失的能力越强。固态硬盘的使用随着技术和硬件的不断发展,硬盘的种类也不断扩大。从以前的机械硬盘到现在的固态硬盘和纯闪存盘。速度越来越快,I/O吞吐量越来越大。并不是说在整体的存储架构中,哪种磁盘就一定是最好的。为了获得最大性能,必须结合业务需求,合理使用。对于永久数据存储,建议使用机械硬盘。但对于缓存区和热数据区,建议使用SSD或Flash盘。IP存储网络IP网络存储技术完全依赖以太网传输。在某些情况下,我们还考虑结合IP存储网络来弥补架构中的非关键组件。在成本方面,光存储网络、SSD等硬件虽然速度快,但价格昂贵。比如ISO之类的镜像文件,因为调用不频繁,可以存储在IP网络存储中,使用NFS或者ISCSI来呈现。如何设计虚拟存储VMware的VSAN不同于其他知名存储,既不是NFS也不是VMF,它是一种只有vSphere5.5及以上版本才有的虚拟SAN存储。它整合了所有ESXi计算节点的本地硬盘资源,创建了集群中所有ESXi都可以访问的逻辑数据存储。虚拟机文件等其他数据可以在主机间进行复制,从而避免单台主机损坏,不会出现单点故障,影响正常业务。当然,VSAN也有一些避免性能瓶颈的预防措施:固态硬盘VSAN中的每个存储组都必须有一个SSD磁盘来创建数据存储,并且需要一个可以通过的硬盘驱动器控制器来驱动每个单独的磁盘.数据被提交到vSphere。其中,SSD主要用作缓存层。一般SSD与机械盘的比例为1:10。存储策略VMware将VSAN定义为软件定义存储,通过定义存储策略来管理存储资源。通过策略,管理员可以定义一组特定的可用性、性能和大小要求,并允许vSphere管理VMDK的放置,并在部署新虚拟机时选择正确的数据存储。由于网络通过以太网连接,VSAN依靠同步复制在各个ESXi主机中复制数据,对网络有更高的要求。由于其对延迟的低容忍度,网络延迟的增加会导致严重的性能下降。强烈建议至少使用10G的网络负载来应对ESXi之间的复制压力。ESXi存储性能优化网络性能优化网络性能的好坏直接影响最终的用户体验。几乎所有的虚拟化数据传输都是通过网络进行的。用户到数据的抽取,主机到主机的数据复制等。网络越复杂,越要精细化设计,合理规划。否则,一旦投入生产使用,将会带来很多不必要的麻烦。ESXi网络设计ESXi网络设计主要分为两种,物理网络设计和虚拟化网络设计。不同级别的网络设计需要不同的团队进行配置和支持。一般公司网络部门负责物理网络的设计,而云计算团队一般负责虚拟化网络。物理网络设计:在网络设计过程中,应保证各网络路径冗余,避免单点故障。确保主机之间的复制通道有足够的带宽,避免大流量造成数据延迟。确保有足够的物理网络上行链路来提供环境所需的网络隔离和冗余。确保数据网络、内核和管理网络的隔离。虚拟化网络设计:主要分为标准交换机和虚拟交换机。一般业界较小的环境建议使用标准交换机,较大的环境建议使用分布式交换机。因为分布式交换机在可扩展性、功能性和向后连续性方面优于标准交换机。标准交换机:标准交换机是VMware最早的虚拟交换机,也是一种单机交换机。每台主机的所有传入和传出流量都通过标准交换机,需要更多的管理开销。适合小规模部署。确保各vSwitch在各主机上的部署和配置一致,避免虚拟机迁移后网络无法通信。分布式交换机:适用于大规模部署,因为它实现了集中配置和管理,使主机设置更加统一。它也是VMware平台的网络增强版。合理利用网络I/O控制分布式交换机,具有后期扩展的优势,提供负载均衡策略。其实ESXi分布式交换机如何选择虚拟交换机完全取决于各自的业务需求。但是,随着VMware更新技术的发展,分布式交换机的应用越来越普及,尤其是大型环境的部署和应用。那么在部署分布式交换机提升性能时,我们可以获得哪些好处呢?具有更好的向后扩展能力,否则VMware技术的发展路线支持NIOC功能,实现对不同虚拟机使用不同网络资源的管理。特别是在SDN中得到广泛应用,实现了一张网卡少共享多种功能。提供负载均衡功能,可有效均衡跨物理网卡的流量负载。提供Netflow和LLDP管理功能,在关键业务虚拟化时尤为重要。ESXi网络性能调优可以在之前的虚拟化环境管理工作中找到。大部分性能问题主要来自于CPU、内存和存储,几乎没有网络带来的性能瓶颈。但是,随着SDN、NSX等技术的出现,对网络的要求越来越高,网络优化变得越来越重要。ESXi主机层面的性能优化,经过多年的工作经验积累。良好的网络性能应从ESXi主机级别开始。首先选择网卡数量合适的主机,以保证冗余和性能。虚拟交换机的负载均衡策略可以有效负载网卡间的流量,避免单网卡的流量瓶颈。所以无论是大环境还是小环境,都建议尽量使用分布式交换机。如果网络吞吐量增加,建议也增加ESXi的主机CPU。因为吞吐量越大,需要的CPU处理量就越大。明智地使用网络I/O控制功能并使用份额而不是阈值来控制网络流量。因为阈值是设置可以使用的最大限制。共享依赖于策略,通过优先级来优化关键虚拟机的流动。建议使用单独的NIC来隔离vMotion流量,以避免与其他流量发生冲突。迁移流量和FT流量都会使用内核网卡。虚拟机层面的性能优化在所有虚拟机中安装VMwaretools,并选择使用VMXNET3增强型虚拟网卡,因为它提供了更高级的功能,如巨型帧、接收器回缩等技术。关联的虚拟机尽量放在同一台ESXi主机上,因为同一台主机的网络是通过内核传输的,以最大限度地提高速度。但这并不意味着VM不需要备份或异地部署,应该根据业务的实际应用进行划分。对于那些对网络延迟要求低的应用,需要在VMware高级设置中调整网络延迟敏感度以满足业务需求。当然,默认设置已经可以满足大部分用户的应用场景。结束语以上主要阐述了VMware在CPU、内存、存储和网络方面的性能优化。当然,一个成熟的虚拟化架构方案不仅要考虑以上场景,还要对虚拟机本身的CPU、内存、存储、网络进行微调。本文主要关注物理层面的优化。感兴趣的朋友可以从VMwarevSphere官方找到相关的优化细节。【作者简介】张志强,多年云计算、虚拟化架构设计、企业信息化建设、自动化运维经验。熟悉X86、Power、存储、虚拟化等硬件设备调优配置。具有丰富的混合云架构及信息安全、网络架构的管理、设计和运营经验。