VMware虚拟机性能优化
一、ESX及vCenter服务器的优化
- 检查ESX物理服务器是否在兼容列表中,特别是BIOS的版本是否符合ESX版本的要求
- 开启ESX物理服务器硬件虚拟化技术VT-X,AMD-V
- 关闭BIOS中的英特尔SpeedStep和AMD PowerNow的CPU电源节电管理模式。节电模式使CPU低频运行,降低CPU性能。
- 避免在服务控制台中运行会占用过多 CPU 或内存资源的程序
- 限定vCenter数据库日志文件的大小或者把数据库日志的恢复模式更改为简单。



二、虚拟机的优化
- 安装合适版本的Vmware tools,使用vCenter或者vsphere client推荐的版本。


- 在虚拟机中,断开或禁用未使用的或不必要的物理硬件,例如:com端口、LPT端口、USB控制器,软盘驱动器、光盘驱动器、网络接口等
- 虚拟机尽量禁用屏保程序和窗口动画,在Linux上禁用X window图形桌面。
- 虚拟机的备份和防病毒程序运行在非高峰期,并错开计划任务的时间点。
- 定期做磁盘碎片的整理
- 配置NTP服务器。
- 虚拟机要定期清理快照文件。
- P2V迁移成功后删除原物理硬件相关的驱动程序,删除影子设备。
三、CPU性能优化
- 不要过量分配虚拟CPU,尽量减少虚拟CPU的数量。
虚拟机在多处理器环境下需要处理器的速度一样,如果某个CPU速度快了,需要该CPU跑慢点儿,等待运行慢的CPU跟上。ESXtop命令中%CSTP值较高,说明该虚拟机不需要这么多CPU。

- 将主机上或资源池中其他虚拟机的 CPU 使用情况与此虚拟机的 CPU 使用情况值进行比较。
- 确定虚拟机CPU就绪时间过长是否由其 CPU 使用情况时间达到CPU 限制设置所致。如果出现这种情况,请增加虚拟机上的CPU 限制。
- 增加 CPU 份额以给予虚拟机更多机会运行。
- 增加分配给虚拟机的内存量。减少应用程序的磁盘和网络活动,这可能会降低磁盘 I/O,并减少 ESX主机对虚拟化硬件的需求。
- 如有必要,请在主机上升级物理 CPU。
- 启用节省CPU功能(例如 TCP 分段卸载、较大内存页面、巨型帧等)。
四、存储的优化
- 存储设备的兼容性检查,包含Firmware的版本。
- HBA兼容性检查
- 配置存储网络的冗余路径,存储处理器是主动和被动模式,使用MRU,主动和主动模式使用FIXED。
- 相同读写类型的应用,尽量不用放在同一LUN上。
- 根据虚拟机读写的带宽,放在不同raid组的LUN上。
- 使用厚磁盘的模式性能优于精简磁盘。
厚置备延迟置零:默认的创建格式,创建过程中为虚拟磁盘分配所需空间。创建时不会擦除物理设备上保留的任何数据,没有置零操作,当有IO操作时,需要等待清零操作完成后才能完成IO,即:分配好空间,执行写操作时才会按需要将其置零;
厚置备置零(thick):创建支持群集功能的厚磁盘。在创建时为虚拟磁盘分配所需的空间。并将物理设备上保留的数据置零。创建这种格式的磁盘所需的时间可能会比创建其他类型的磁盘长。即:分配好空间并置零操作,有IO的时无需等待任何操作直接执行。
精简置备(thin):精简配置就是无论磁盘分配多大,实际占用存储大小是现在使用的大小,即用多少算多少。当客户机有输入输出的时候,VMkernel首先分配需要的空间并进行清零操作,也就是说如果使用精简配置在有IO的时候需要:等待分配空间和清零,这 两个步骤完成后才能进行操作,对于IO叫频繁的应用这样性能会有所下降,虽然节省了存储空间。同一个LUN上放置不超过12台虚拟机。
- 使用磁盘份额区分磁盘的优先级
五、磁盘I/O性能
- 增加虚拟机内存。
- 在所有客户机上整理文件系统碎片。
- 禁止对 VMDK 文件进行防病毒按需扫描。
- 使用 Storage VMotion根据虚拟机磁盘IO读写的要求,在不同的磁盘组或者RAID组的LUN迁移 I/O 密集型虚拟机。
- 使用多路径切换策略,均衡存储的负载。
- 更改HBA卡的队列深度
- 删除虚拟机的快照文件
- 减少vmotion和DRS发生的频率
六、内存性能优化

- 避免内存的过量分配
- 仔细精确计算分配给虚拟机的内存量及VCPU数量,减少内存开销
- 验证是否在每个虚拟机上均安装了 VMware Tools。
- 如果虚拟机的内存预留值设置大大高于活动内存设置,则减少预留设置,以便 VMkernel 可以在主机上回收空闲内存供其他虚拟机使用。
- 将一个或多个虚拟机迁移到 DRS 群集中的其它上。
七、网络优化
- SC、vmkernel、VM分属于不同的虚拟交换机。
- 使用VLAN技术
- 在物理交换机的端口上开启portfast
- 验证是否在每个虚拟机上均安装了 VMware Tools。
- 如果可能,使用 vmxnet3 网卡驱动程序,这些驱动程序可用于 VMware Tools。并对其进行了优化,以提高性能。
- 如果在相同 ESX/ESXi 主机上运行的虚拟机之间相互通信,则将它们连接到相同 vSwitch 以避免通过物理网络传输数据包。
- 使用NIC Teaming 增加网络带宽。
- 使用单独的物理网卡处理不同的数据流量,例如由虚拟机、iSCSI 协议、VMotion 任务和服务控制台活动生成的网络数据包。
- 验证物理网卡的端口速度和双工模式设置符合硬件配置,以便其发挥最大性能。
VMware虚拟机优化
VMware虚拟机性能优化的更多相关文章
- 提升VMware虚拟机性能招数
在VMware虚拟机(VMware Workstation或VMware Server)中我们可以同时运行多个Guest OS,当同时在同一Host OS中运行多台虚拟机时势必会严重影响到Host O ...
- VMware 12安装虚拟机Mac OS X 10.10使用小技巧(虚拟机Mac OS X 10.10时间设置,虚拟机Mac OS X 10.10通过代理上网,Mac OS X 10.10虚拟机优化,VMware虚拟机相互复制)
1:修改Mac OS 系统时间 2:Mac OS系统 通过代理上网 VMware 12安装Mac OS X 10.10虚拟机优化心得 虚拟显卡硬伤,所以必须要优化下才能用,优化的原则就是能精简的精简, ...
- 如何优化VMWare虚拟机的运行速度(转)
虚拟机是个好东西,但是对电脑有一定的要求.尤其对做工控的来说都需要安装一些大型的软件(其中WINCC最难装,对系统要求较高.而且像WIN 7 64位的就别想装上去了,如果改系统后那4G以上的内存不就浪 ...
- Citrix 服务器虚拟化之十三 Xenserver虚拟机内存优化与性能监控
Citrix 服务器虚拟化之十三 Xenserver虚拟机内存优化与性能监控 XenServer的DMC通过自动调节运行的虚拟机的内存,每个VM分配给指定的最小和最大内存值之间,以保证性能并允许每 ...
- 推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题(图解版)
欢迎一起学习 <提升能力,涨薪可待篇> <面试知识,工作可待篇 > <实战演练,拒绝996篇 > 欢迎关注我博客 也欢迎关注公 众 号[Ccww笔记],原创技术文章 ...
- JVM虚拟机详解+Tomcat性能优化
1.JVM(java virtual mechinal) ()JVM有完善的硬件架构,如处理器.堆栈.寄存器当,还具有相应的指令系统. ()JVM的主要工作时解释自己的指令集(即字节码),并映射到本地 ...
- 从虚拟机视角谈 Java 应用性能优化
从虚拟机视角谈 Java 应用性能优化 周 祥, 软件工程师, IBM 简介:Java 的普及和广泛应用,以及其基于虚拟机运行的机制,使得性能问题越来越重要.本文从 Java 虚拟机的角度,特别是垃圾 ...
- JVM性能优化系列-(3) 虚拟机执行子系统
3. 虚拟机执行子系统 3.1 Java跨平台的基础 Java刚诞生的宣传口号:一次编写,到处运行(Write Once, Run Anywhere),其中字节码是构成平台无关的基石,也是语言无关性的 ...
- VMware 虚拟化编程(9) — VMware 虚拟机的快照
目录 目录 前文列表 VMware 虚拟机的快照 快照的执行过程 删除快照 快照类型 Quiseced Snapshot 前文列表 VMware 虚拟化编程(1) - VMDK/VDDK/VixDis ...
随机推荐
- C#中protobuf-net的编码结构及使用方法
目录 protobuf-net简介 ProtoBuf编码原理 编码结构 解析一个编码结果 使用方法 参考资料 protobuf-net简介 Protocol Buffer(简称Protobuf) 是 ...
- JS基础学习第三天
条件分支语句switch语句语法: 1234567891011121314 switch(条件表达式){ case 表达式: 语句... break; case 表达式: 语句... break; c ...
- Python基础(二十一):面向对象“类”第四课——魔法方法
先划一下重点: 6个魔法方法: 动态操作属性的4个函数: 魔法方法 魔法方法的简单介绍 魔法方法的命名规则:方法名(前后各有2个下划线). 通常情况下,不会主动去调用魔法方法,而是在满足一定的条件下, ...
- 使用 nodejs 中的 http 模块实现几个超实用的工具
nodejs 方便了我们前端开发者进行一些服务端上的操作,可以进行无缝地衔接.像其他一些后端语言,如 php, golang, java 等,都需要一定的学习成本,而 nodejs 则就是为前端开发者 ...
- 记一次踩坑之路之Ubuntu未导入镜像前配置docke/docker-composer
更新 apt 包索引与升级 sudo apt-get update sudo apt-get upgrade 安装 apt 依赖包,用于通过HTTPS来获取仓库: sudo apt-get insta ...
- Pyinstaller原理详解
Pyinstaller原理详解 什么是Pyinstaller Pyinstaller可以把Python程序打包成exe文件,可以在没有Python的电脑上运行,主要用于生产用. Python.h! 在 ...
- day17.网络编程2+进程
1 加入链接循环的套接字服务端 1.1 服务端 ''' 2.1 基于文件类型的套接字家族 套接字家族的名字:AF_UNIX unix一切皆文件,基于文件的套接字调用的就是底层的文件系统来取数据,两个套 ...
- 简谈Mysql悲观锁和乐观锁
悲观锁: 其实理解起来非常简单,当数据被外界修改持保守态度,包括自身系统当前的其他事务,以及来自外部系统的事务处理,因此,在整个数据处理过程中,将数据处于锁定状态.悲观锁的实现,往往依靠数据库提供的锁 ...
- 数据库函数-常用的MySQL函数
1.date_sub() 时间的加减 备注:record 为datetime类型 select record_time as date, order_area as orderArea, order_ ...
- 手脱UPX3.91壳(练习)
0x01 准备 OD UPX加壳程序 可以加壳的软件 0x02 给软件加壳 我找了半天发现winhex不错,而且是没壳的可以直接加壳 1.复制一份可执行文件 将赋值好的文件用UPX3.91加壳 0x0 ...