查看: 9724|回复: 6
收起左侧

[分享] 利用NTFS压缩功能大幅提升虚拟机快照载入速度,顺便节约磁盘空间

[复制链接]
yhys
发表于 2012-11-13 15:26:41 | 显示全部楼层 |阅读模式
本帖最后由 yhys 于 2012-11-15 10:51 编辑

节约磁盘还加快速度听起来貌似不太现实,不过用NTFS压缩功能来压缩虚拟机的那些文件可能很多人都做过,往往可以减少1/3甚至更多的磁盘占用,但大多数人都认为压缩后会使读写变慢,降低虚拟机的性能。不过今天的一些实验说明有时候选择性的压缩不仅不会使性能下降,反而会使性能大幅提升。当然以下实验只是在我这里的效果,在别人的环境中未必有相同的效果。




测试平台:
win7旗舰版32位,可用内存3.5G,cpu双核4线程2.13GHz 硬盘5400转
VMware 9.0.1  虚拟系统win7旗舰版32位内存1G,xp sp3 32位内存348M

测试对象是一个暂停的虚拟机的快照恢复运行的速度(暂停的虚拟机恢复运行和运行中的虚拟快照之后再恢复效果是差不多的)。

压缩的文件主要是Windows 7-Snapshot**.vmem这样的文件,这个文件应该是虚拟机快照的内存镜像,虚拟机恢复运行耗时的主要过程就是把这个文件的内容装载到虚拟机内存中。这些文件创建之后就不会再修改,只会读取,所以很适合压缩。

设置压缩属性后的Windows 7-Snapshot27.vmem
BaiduShurufa_2012-11-13_13-52-53.png
BaiduShurufa_2012-11-13_12-28-10.png

设置压缩属性后的Windows XP Professional-Snapshot11.vmem文件(改了后缀名是为了方便测试的时候再压缩和不压缩之间切换)
BaiduShurufa_2012-11-13_13-55-45.png




开机后不运行无关软件(除了自启动的安全软件),等待系统稳定之后开启虚拟机,并启动暂停的虚拟机,秒表计时

BaiduShurufa_2012-11-13_14-1-12.png

设置压缩的情况下(压缩Windows 7-Snapshot27.vmem并且把这个虚拟机所在的文件夹设置为压缩属性,但不应用于子文件):
win7第一次(指开机后第一次)恢复耗时25秒,第二次约为15秒左右(因为系统把很多内容缓存到内存了),
xp第一次恢复耗时16秒,第二次约为12秒
重启再重复以上过程,结果基本一致。

不设置压缩的情况下:
win7第一次恢复耗时58秒,第二次约为15秒左右,
xp第一次恢复耗时30秒,第二次约为12秒
重启再重复以上过程,win7第一次耗时57秒,xp第一次耗时27秒


对比结果很明显,设置压缩之后开机后第一次恢复虚拟机,win7平均耗时由57秒减少到25秒,xp由28秒减少到16秒。
第二次耗时基本是一样的,是系统把数据缓存到内存的原因,不过系统内存不一定总是那么闲,等其他程序占用的内存把这部分缓存挤掉之后就情况应该就和第一次启动差不多了。


压缩可以提高启动速度的原因可能是由于内存镜像文件中有大量的空白和稀疏数据,因为一般情况内存占用率不是特别高,比如上图1G的文件压缩后只有345M,虚拟机任务管理器显示的占用是不到50%

BaiduShurufa_2012-11-13_15-0-34.png

对于未压缩的内存镜像文件,不论里面是稀疏数据还是空白数据,装载的时候都要从头到尾读一遍,而硬盘的速度是很有限的;而对于压缩过的镜像文件,用很少的数据量就可以记录大量的空白数据和稀疏数据,大幅减少了硬盘读取,而cpu解压的运算能力和内存的写入速度都是很快的,所以整体速度就提高了。

所以对于虚拟机的目录,可以这样设置,把已经创建的快照内存映像文件*.vmem设置为压缩属性,也可以加上*.vmsn,然后把整个目录设置为压缩属性,但是不应用于子文件和子文件夹。这样已经创建的快照和新创建的快照就都是压缩属性了。不过*.vmdk这样的文件最好还是不设置为压缩,因为读写频率比较高。
jeff1985
发表于 2012-11-15 06:30:46 | 显示全部楼层
很有启发,试试看吧
g0ug0u
发表于 2012-11-15 12:23:20 | 显示全部楼层
很有启发,值得试试!
ssama
发表于 2012-11-16 00:14:46 来自手机 | 显示全部楼层
貌似压缩的文件完整性保护会降低,考虑数据安全性的话。。不建议
yhys
 楼主| 发表于 2012-11-16 09:14:12 | 显示全部楼层
ssama 发表于 2012-11-16 00:14
貌似压缩的文件完整性保护会降低,考虑数据安全性的话。。不建议

什么意思?
ssama
发表于 2012-11-16 22:42:42 | 显示全部楼层
yhys 发表于 2012-11-16 09:14
什么意思?


字面意思
压缩进程时,如果异常直接文件损毁

喵经历过这种事
yhys
 楼主| 发表于 2012-11-17 01:18:21 | 显示全部楼层
本帖最后由 yhys 于 2012-11-17 01:19 编辑
ssama 发表于 2012-11-16 22:42
字面意思
压缩进程时,如果异常直接文件损毁


这类操作保证电源稳定就好了吧。如果硬盘本身有问题那即使不压缩也难免出错。
要真是高风险操作微软总要有些提示,没必要为了一点点可能的风险因噎废食,一般人的虚拟机快照也不会有什么重要资料,而且只是内存映象不是磁盘映象,如果真有重要资料还是备份保险。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-23 23:01 , Processed in 0.145875 second(s), 19 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表