ESXi虚拟化的坑-细微区别下虚拟机性能差异巨大
ESXi虚拟化的坑-细微区别下虚拟机性能差异巨大
背景
周末在公司无偿加班.
同组的小伙伴周一有一个需求,
我想着周六乘着机器压力不大进行一下虚拟机的clone
但是截止到晚上快十点都没有完全Clone完.
我感觉非常不对.
然后突然想是不是硬件的bug导致性能有差异.
想着最近总是在进行redis的性能测试, 直接可以拿过来验证一把.
不查不清楚, 一查直接震惊了, ESXi6.7的不同小版本性能差异巨大
机器配置情况
公司里面很多机器都是Inspur NF5280M5的机器
配置基本上都一样 都是2*Intel Golden 5218 2.3Ghz + 1T内存 4THDD*12(Raid6)
为了便于管理大部分都是用ESXi
自从从代理采购之后, 大部分都是代理商给安装好ESXi, 我这边最多调整一下RAID卡的设置
大部分是采用Raid卡的Write back的模式.
获取部分核心信息的方法 CPU的工作频率
esxcli hardware cpu list|grep -i -E 'cpu:|core speed'
查看内存频率
smbiosDump |grep -i speed
Samsung / W0L300001103DC1430 / 2933 MHz /64G *16
看其他机器的信息为:
Samsung / 1464B712 / 3200 MHz /64G *16
一个比较早的机器为:
Ramaxel /07F22101 / 2666 MHz /32G *20
一个简单结论
6.7的版本下 15160138 的build 的GA时的8169922 性能要好很多
怀疑ESXi6.7 发布之后 进行了非常高的性能优化.
虽然内存等效工作频率多了200MHZ(7%不到),但是提升足有 40% 以上
感觉只能通过 虚拟化技术水平的提升才能达到.
另外也切实发现不通操作系统差异巨大,国产系统的测试值都表好一些.
硬件平台不能单纯看CPU核数内存大小
还要查看 CPU频率, 型号, 内存工作频率, 内存厂商等等.
性能的变量很多, 稍有不慎,可能就差异巨大.
相同型号的CPU,在不同的虚拟化背景情况下有 67%的性能差距.
测试结果-注意CPU都是Golden 5218 2.3Ghz
| ESXi大版本 | ESXi Build版本号 | 内存工作频率 | Redis测试数据 | 备注情况 |
|---|---|---|---|---|
| 6.5 | 4564106 | 2666 | 61200 | 超售比较厉害-CentOS8 |
| 6.5 | 4564106 | 2666 | 66400 | 超售比较厉害-kylinV10 |
| 6.5 | 4564106 | 2666 | 90663 | 有超售-CentOS8 |
| 6.7 | 8169922 | 2999 | 53353 | 几乎没有超售-CentOS9 |
| 6.7 | 8169922 | 2999 | 71458 | 几乎没有超售-OpenEUler2203 |
| 6.7 | 8169922 | 2999 | 57265 | 几乎没有超售-CentOS9 |
| 6.7 | 15160138 | 3200 | 95067 | 几乎没有超售-CentOS7 |
| 6.7 | 15160138 | 3200 | 94881 | 几乎没有超售-OpenEUler2203 |
| 6.7 | 15160138 | 3200 | 102769 | 几乎没有超售-OpenEUler2203 |
ESXi虚拟化的坑-细微区别下虚拟机性能差异巨大的更多相关文章
- Asp.Net运行于32/64模式下的性能差异
项目使用的是Oracle数据库,.Net使用Odac对数据库进行访问.在官方下载Odac时会让你选择是下载32位的还是64位的.这会直接影响到网站的运行模式.目前我们使用的是32位的,那么布署时,需要 ...
- Groovy在不同JDK版本下的性能差异
Groovy作为一种动态语言,性能和JAVA比肯定是差不少,根据网友的测试,由于测试环境,场景和编译参数的不同,大概有差2到7倍的差距 那么同样的Groovy,在不同的JDK版本下,会有着怎样的差异呢 ...
- kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置
KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...
- VM ESXi虚拟化使用学习笔记
由于疫情原因,没有条件介绍安装部分的内容,也没有安装部分内容的相关截图,所以安装部分可以选择网上资料.但是只要熟练安装CentOS系统的,基本安装ESXi一看就会,设置主机地址方面有一定图形化界面,比 ...
- VMware ESXi 和 VMware Server 有区别
VMware ESXi 和 VMware Server 有区别: VMware ESXi 是一个企业级虚拟机管理程序,提供接近本机性能的祼机体系结构.各种旨在提高整合率的功能(例如取消内存复制),以及 ...
- Windows下虚拟机安装Mac OS X ----- VM12安装Mac OS X 10.11
Windows下虚拟机安装Mac OS X -– VM12安装Mac OS X 10.11 随着Iphone在国内大行其道,越来越多的开发者涌入iOS开发大军 中,但都苦于没有苹果机,本文即将介绍WI ...
- C与C++的细微区别——省略形式参数名
转自:http://www.cppblog.com/ownwaterloo/archive/2009/04/26/omit_parameter_name.html 一.C与C++的细微区别 在函数声明 ...
- Windows下虚拟机安装Mac OS X —– VM12安装Mac OS X 10.11
____________________________________________________________________________________________________ ...
- 网卡NAT方式下虚拟机安装FTP服务
在windows8下安装Oracle VM VirtualBox虚拟机,虚拟机中安装的CentOS操作系统,在CentOS中搭建LNMP环境,安装vsftpd服务器,宿主机在phpStorm编程,将代 ...
- DIY ESXI虚拟化服务器再度升级ESXI6.0 (U盘安装Esxi)
前期我写了一个篇关于<IT屌丝DIY ESXI虚拟化服务器记实 >链接地址:http://lidongni.blog.51cto.com/2554605/1643996,这次主要是在原有的 ...
随机推荐
- Spring事务状态处理
Spring事务提交后执行:深入理解和实践 在Java开发中,Spring框架的事务管理是一个核心概念,尤其是在企业级应用中.理解和正确使用Spring事务对于保证应用的数据一致性和稳定性至关重要.本 ...
- Quartz.Net系列(五):Quartz五大构件Job之JobBuilder解析
所有方法图: 1.Create,OfType 在JobBuilder中有五种方法执行Action: var job1 = JobBuilder.Create().OfType<FirstJob& ...
- Multi-Architecture镜像制作指南已到,请查收!
摘要:使用Multi-Architecture镜像,可以让docker根据系统架构去拉取对应的镜像,服务的部署脚本等可以在不同架构的系统间使用相同的配置,减化服务配置,提高了服务在不同系统架构间的一致 ...
- Golang代码测试:一点到面用测试驱动开发
摘要:TDD(Test Driven Development),测试驱动开发.期望局部最优到全局最优,这个是一种非常不错的好习惯. 了解Golang的测试之前,我们先了解一下go语言自带的测试工具. ...
- 云小课 | 华为云KYON之L2CG
摘要:本文介绍KYON独创的L2CG,打通大二层网络,支持企业携带私网IP直接上云,让业务敏捷迁移,大幅降低企业上云的复杂度和成本.同时支持虚拟机粒度迁移,让企业上云过程中无需迁移整个子网. 本文分享 ...
- 数据治理如何做?火山引擎DataLeap帮助这款产品3个月降低计算成本20%
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 本文讲述字节跳动一款 App 产品的数据治理故事.该产品随着用户体量和数据体量不断增长,数仓的任务量.数据量也不断 ...
- JAVA CRC16
JAVA CRC16 /** * CRC-16 * * <table width="400px" border="1" cellpadding=" ...
- Java 四种引用类型(强引用、软引用、弱引用、虚引用)
概述 Java 中的引用类似 C 语言中的指针,指向一个对象,比如: // person 就是指向 Person 实例"张三"的引用 Person person = new Per ...
- ABAP使用异步远程RFC实现并行处理
1.使用场景 当开发复杂报表,需要处理大量数据,不管怎么优化计算和查询语句,程序的运行效率还是达不到用户要求,怎么办? 为了解决这个问题,就需要程序实现并行处理. 本文档就是通过异步调用远程RFC的办 ...
- 【JAVA基础】List处理
List处理 List使用Lists.partition()分片 public static <T> List<List<T>> partition(List< ...