我知道在SSD上运行Defrag毫无意义(实际上是一个坏主意)。在SSD上运行的虚拟机该如何处理,因为它基本上以相同的方式访问硬盘,所以我应该对它的硬盘进行碎片整理吗?
我知道在SSD上运行Defrag毫无意义(实际上是一个坏主意)。在SSD上运行的虚拟机该如何处理,因为它基本上以相同的方式访问硬盘,所以我应该对它的硬盘进行碎片整理吗?
Answers:
我对VHD进行了碎片整理,但是出于空间原因而不是时间原因:
我为VHD使用了动态分配的选项,因此它们从小开始并根据需要扩展。但是随着VHD(不一定是文件)变得碎片化,它会扩展为包括所有分配的块。对VHD进行碎片整理是再次压缩它的第一步。
无需整理SSD碎片。常规硬盘驱动器必须旋转才能查找文件(的一部分)。SSD可与RAM媲美,所有文件的访问延迟相同。
维基百科指出 “读取性能不会根据数据在SSD上的存储位置而改变”
这仅是我的看法,我没有测试结果可以支持。这大概是事情发生的大概方式:
真实操作系统:
这将是VM中的等效命令链:
如您所见,在这两种情况下,只有在物理硬盘驱动器尝试读取数据的操作阶段碎片化才真正成为问题,并且这发生在VM上下文之外的实际OS中。在此之前,所有可能都发生在内存中。
总之,由于我们知道固态硬盘在实际操作系统中不会遭受碎片破坏,并且虚拟机中的碎片问题可能仅在操作的最后物理步骤中发生,因此我想对虚拟操作系统或操作系统进行碎片整理主操作系统中的虚拟磁盘文件不会提高SSD的性能,而与实际操作系统的碎片整理一样有害/无用。
编辑:如果这是正确的,那是将VM放在SSD上的一个很好的理由!在HDD上,任何阶段(来宾操作系统,虚拟磁盘文件,真实操作系统)的碎片化都会破坏线性,并在物理磁盘步骤中造成碎片化。
无论您的虚拟机是访问存储在传统磁性HDD还是电子SSD上的数据,Windows NTFS文件和可用空间碎片都会减慢请求数据的应用程序的访问速度。NTFS文件和可用空间碎片的发生频率远远超出您的猜测。一旦安装操作系统,它就有可能发生。当您安装应用程序或系统更新,访问互联网,下载和保存照片,创建电子邮件,办公文档等时,可能会发生这种情况。这是计算机系统的正常现象,但会对计算机系统产生负面影响。所有应用程序和系统性能。随着碎片的发生,计算机系统和底层存储执行的工作量超出了必要。每个I / O请求都花费可测量的时间。即使在SSD环境中,也没有“即时” I / O请求之类的东西。每当应用程序请求读取或写入数据并且该请求被拆分为其他I / O请求时,它都会导致完成更多工作。这项额外的工作会在该时刻造成延迟。
这些年来,磁盘驱动器变得越来越快,但是CPU也越来越快。实际上,硬盘和CPU之间的速度差异之间的差距实际上已经扩大了。这意味着应用程序可以获得大量的CPU周期,但是它们仍然渴望从存储中获取数据。而且,正在存储的数据量已大大增加。想一想在假期中拍摄和分享的所有数码照片。每张照片的大小约为1MB,现在每张照片超过15MB,有些超出了。视频编辑,渲染以及数字电影的存储也已变得非常流行,结果应用程序正在处理数百GB的数据。在典型的磁盘群集大小为4k的情况下,一个15MB大小的文件可能会分成近4,000个扩展区。这意味着额外的4,读取或写入文件需要000个磁盘I / O请求。无论哪种类型的存储,只需花费更长的时间即可完成操作。
数据在固态硬盘上的物理放置并不像在常规磁性硬盘上那样重要。使用SSD时,没有旋转等待时间或竞争时间。许多专家认为碎片不再是问题,但是应用程序数据访问速度并不仅仅是这些术语中的定义。执行的每个I / O请求都需要花费可测量的时间。SSD的速度很快,但不是瞬时的。Windows NTFS文件系统的行为没有任何不同,因为基础存储是SSD与HDD,因此仍然会发生碎片。通过防止和消除碎片减少不必要的I / O,从而减少了I / O请求的数量,从而加快了应用程序数据响应时间并提高了SSD的整体使用寿命。在本质上,
另外,SSD要求在写入新数据之前先擦除旧数据,而不是像HDD一样仅写入旧信息。这会使磨损加倍,并可能导致SSD的速度性能和使用寿命出现重大问题。大多数SSD制造商都拥有非常先进的磨损均衡技术来帮助实现这一目标。原则问题是由于自由空间碎片而导致写入速度下降。散布在SSD上的较小可用空间会导致NTFS文件系统将文件零散地写入那些较小的可用空间。这具有导致比顺序操作慢的更多随机I / O流量的效果。
我有基准测试结果来支持这一点。如果您愿意,请发表评论,索取这些结果,我们很乐意与您分享。
关于SSD的传统碎片整理的原始问题,我同意这是一个坏主意,但是有一些特定的解决方案可以解决文件移动和SSD寿命的问题。
运行Windows作为其操作系统的虚拟机仍然会发生碎片,额外I / O流量的综合影响不仅会降低来宾系统的速度和效率,还会降低主机的速度和效率。Microsoft和VMware均建议需要解决来宾级别的碎片。
这就是为什么...
应用程序要求数据X
请求由NTFS.sys处理
检查文件属性($ MFT),如果数据未包含在单个扩展数据块(片段)中,则将为每个扩展数据块/片段创建其他I / O请求,以满足原始数据请求。
这些请求中的每一个然后都发送到磁盘存储驱动程序。
检索到数据后,会将其向上传递回堆栈到用户/应用程序。
每个Windows虚拟机都将这种类型的I / O通信发送到主机系统。如果文件系统结构在来宾/虚拟机级别上是零散的,则这将转化为主机必须处理并从后端存储中提取的额外和不必要的I / O通信。随着您添加越来越多的虚拟机,这种情况变得更加复杂。实际上,您可以在主机文件系统级别的碎片中包含碎片。
无论数据是存储在SSD上还是传统的HDD上,如果您正在运行Windows,NTFS文件系统都将变得碎片化,结果由于NTFS文件和可用空间碎片化,您将永远无法达到制造商的额定速度和吞吐量。通过查看平均磁盘读取队列长度,平均写入队列长度,最重要的是分割IO /秒,可以通过PerfMon来测量效果。
从Windows Server 2008和Windows Vista开始,请谨慎使用Windows默认计划的碎片整理任务。
可以通过以下方式禁用它: schtasks /change / tn “microsoft\windows\defrag\ScheduledDefrag” /disable
或使用PowerShell:
Get-ScheduledTask ScheduledDefrag | Disable-ScheduledTask
摘自:http : //www.sysadmit.com/2015/10/vmware-y-gpo-defrag-windows.html