曾经写过一篇关于VMware虚拟磁盘格式的博文:《thin还是thick?虚拟磁盘格式的选择题》,介绍了thin和2种thick格式的虚拟磁盘特性,文中也提到VI3.x的时候, 部署(deploy)或克隆(clone)一台虚机的时候,不能选择格式,只能是eagerzeroedthick格式,这是VI3.x的一个缺点,而这个缺点在4.0的时候被克服了,现在我们在vSphere4.0的时候从模板部署或者克隆一台虚机的时候,可以选择是thin还是thick。这个改良似乎意味着从模板deploy一个thin的虚机要优于(或者说快于)deploy一个thick的虚机。

按照常理理解,不应该如此么?——因为thin格式需要复制的vmdk文件尺寸比较小,所以deploy的时候速度也应该比较快才对。但是我有一个疑问一直挂在心头:能快多少?是不是这是一个决定性的因素使得我们应该都选择Thin格式?于是,我设计了以下实验。
实验用的服务器是HP ProLiant BL460c刀片服务器,有2个4核CPU和12GB内存,2个镜像的146GB 10K转SAS硬盘,共享存储是NetApp的FAS3020c,采用软件iSCSI连接,存储网络的设计上使用了MPIO。共享存储的VMFS LUN是实验专用,上面没有其他负载,刀片服务器也只有实验用的VM,没有其他负载。之所以这么具体的描述实验设备,是为了明确的表达一个意思:服务器、网络、存储都性能足够,不会引起性能瓶颈。

我以从头干净安装的方式装好一台Windows XP的VM,名字叫vm-thin,配置内存1GB,内存保留256MB,配置硬盘8GB,thin格式,关机时显示占用空间2.02GB,开机时显示占用空间2.77GB (因为还有0.75GB的swap,为啥0.75GB? 欲知原理请看拙文“VMware内存分配初探”)。然后以clone的方式复制一台完全相同的VM,名字为vm-thick,在复制的时候转换硬盘格式为thick。这个thick其实是zeroedthick。vm-thick关机时显示的占用空间是8GB,开机是显示占用空间8.75GB。

然后我把这2台VM同时开启的状态下,通过Storage VMotion,将其从FAS3020上迁移到本地磁盘上,然后再迁移回去,分别记录下时间。接着我将这2台VM转换成模板,再利用模板部署新的VM,记录下时间。最后,我把新模板部署出来的2台VM再一次从FAS3020上迁移到本地磁盘。在这些Storage VMotion的过程中,我都选择“same format as source” 选项。
vm-thin
(2.02GB +0.75GB swap)
vm-thick
(8GB+0.75GB swap)
FAS→esx local
storage VMotion
5'38" 2'45"
esx local → FAS
storage VMotion
3'02" 1'56"
deploy一台新VM 2'22" 1'12"
FAS→esx local
storage VMotion
5'45" 3'03"
实验的结果令人惊讶:thick格式的性能要远远胜过thin格式。和我之前的设想完全相反!
这个实验得到以下结论:
(1) Thick格式无论在从模板部署新虚机还是Storage VMotion的时候都远比thin格式快,平均大概快40%-50%
(2) 好的网络共享存储的性能远优于本地磁盘

这次实验还有一个有趣的发现,当Storage VMotion的时候,在目的生成新的swap文件大小是不考虑内存保留的,而是完全等于内存大小。所以SVMotion前磁盘占用空间还是2.77GB和8.75GB,SVMotion结束后就变成了3.02GB和9GB了,浏览datastore发现,差额就是swap大小的改变引起的。关机重启后,重新生成swap,就又恢复成了0.75GB的大小。


由于thin格式在VM使用的时候比起thick格式也会有负面的性能影响。这时因为thin格式的磁盘是动态扩大的,一个数GB大小的vmdk文件在磁盘上不是一次生成的,因此不像thick的磁盘那样可以占用连续的磁盘空间,因此在访问thin格式的磁盘的时候,必然会因为磁头在不连续的磁盘块之间移动导致寻址时间较长,从而影响到Disk IO性能。
综上所述,无论是在部署还是应用时,thin格式的性能都不如thick,强烈建议大家使用thick格式的虚拟磁盘。

寻寻觅觅,到最后才发现原来“默认”的就是最好的。

转载于:https://blog.51cto.com/delxu/282990

thin还是thick(续),实证新结论!相关推荐

  1. thin还是thick?虚拟磁盘格式的选择题

    既然是选择题,还是先说答案.这样对于thin/thick概念比较熟悉的同学就可以不用浪费时间看后面的长篇大论了. 如果必须用FT,只能选eagerzeroedthick 如果追求最佳应用性能不考虑空间 ...

  2. Phoenix 的 thick Client 和 thin Client

    Phoenix的客户端有两种,"thick Client" 和 "thin Client": thick Client:Phoenix JDBC连接,已引入dr ...

  3. “金星生命论”乌龙事件新进展:那只是二氧化硫而已

    晗锋 发自 凹非寺  量子位 报道 | 公众号 QbitAI 还记得去年那条"金星上可能存在生命"的大新闻吗? 科学家发现金星上的磷化氢气体含量异常,怀疑这可能是生命代谢产物. 该 ...

  4. 9位院士!10所一流大学,迎“新帅”

    来源:软科 世界一流大学建设高校作为我国高等教育的顶尖力量,被寄予厚望.一流大学不仅在学术水平上代表着中国高校的实力,同时也是我国高校的管理智慧和治理能力的集大成体现.如何带领一所大学跻身世界一流之林 ...

  5. 新春伊始:从CHAT-GPT到生成式AI,人工智能新范式

    2023的新春伊始,每个人都希望在新的这一年,会有更多更好的事情发生.回头看去已然过去的2022年,科技界充满波折与机遇,似乎在等待一场革命性的变革.近期人工智能研究公司OpenAI推出的聊天机器人模 ...

  6. excel怎么把竖排变成横排_桐城家谱编修丨麻城家谱数字化丨新时代编修家谱该怎么编修?...

    桐城家谱编修丨麻城家谱数字化丨新时代编修家谱该怎么编修? 新中国成立后的50-70年代,编修家谱活动曾一度停止,大量的旧谱牒遭到破坏.80年代改革开放以来,在福建.浙江等东南沿海省份率先出现了重修家谱 ...

  7. 首席新媒体运营黎想教程:产品运营怎么使用思维导图?

    思维导图,作为一个工具而言,目前关于它的使用已经深入到各行各业中,就以互联网和软件工程来说,思维导图就常出现在:需求访谈,需求分析,概要和详细设计等环节,作为设计辅助手段使用. 先自我介绍一下,我是, ...

  8. 计算机专业大学新学年计划,大学的新学期的学习计划(精选5篇)

    大学的新学期的学习计划(精选5篇) 时间是箭,去来迅疾,我们又将迎来新的学习目标,续写新的诗篇,写一份学习计划,为接下来的学习做准备吧!做好学习计划可是让你提高学习效率的方法喔!下面是小编精心整理的大 ...

  9. dbc:oracle:thin,没安装EBS能自己写个.dbc文件么?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 好的,我给你个例子: "template.dbc" 87 ÐÐ, 2633 ¸ö×Ö½Ú # $Header: template.db ...

最新文章

  1. 机器学习数据预处理之缺失值:插值法填充+多项式插值
  2. SHOI2014 三叉神经树
  3. Leetcode 166. Fraction to Recurring Decimal
  4. [USACO5.3]校园网Network of Schools
  5. 为什么构造函数不能声明为虚函数,析构函数可以,构造函数中为什么不能调用虚函数?
  6. java正则匹配英文句号_「正则表达式」王国奇遇记
  7. 大数据之-Hadoop3.x_MapReduce_ETL数据清洗案例---大数据之hadoop3.x工作笔记0136
  8. 选择SEO服务时要注意的问题
  9. easyui select 默认选中指定值
  10. 融合多自然语言处理任务的中医辅助诊疗方案研究——以糖尿病为例
  11. java 微博 开源_微博开源框架Motan初体验
  12. 百度编辑器Ueditor 多图上传出现部分照片尺寸不压缩的问题解决
  13. U盘无法与计算机连接,U盘无法连接电脑的解决方法
  14. 与面试官的一次促膝长谈:人家也是第一次当面试官,你们答不上来我也特别尴尬!
  15. 矩阵乘法的计算和来源
  16. 用C语言实现的简单Web服务器(Linux)
  17. IBM ACE User Defined Node
  18. 数字技术战略:开发者体验 —— 内部工具的“最后一公里”
  19. php面试 猴子大王,php猴子选大王问题解决方法,猴子大王_PHP教程
  20. C++一本通题库1019

热门文章

  1. python求均值标准差不用numpy_【Python】不用numpy用纯python求极差、平均数、中位数、众数与方差,python的打印...
  2. php raido mysql,linux – 如何停止并修复已失败且I / O挂起的RAID 5阵列?
  3. 不能连接到 mysql_怎么无法连接到数据库?
  4. cygwin安装好了如何添加cmake make_在windows上使用cmake
  5. Spring mvc 文件上传
  6. Elasticsearch 单机安装
  7. 1.10 长短期记忆(LSTM)
  8. Windows配置GitBook
  9. HCIBench_2.3.1部署_VSAN_测试工具
  10. 配置使用VCSA自带的备份恢复工具