SCOM 2007 R2 添加了碎片分析健康检查,该检查在我的许多服务器上产生警告。为了尝试了解 SCOM 如何确定碎片级别,我创建了以下 Powershell 脚本来重现相同的数据:
$vols = Get-WmiObject -computername "Z002" Win32_Volume -filter "DriveType=3"
$defragInfo = $vols | %{$_.DefragAnalysis() | add-member -membertype noteproperty vname $_.name -passThru}
$defragInfo | %{$_.DefragAnalysis | add-member -membertype noteproperty DefragRecommended $_.DefragRecommended -passThru | add-member -membertype noteproperty vname $_.vname -passThru} | out-file ./tmp.txt
下面是示例输出。SCOM 使用 FilePercentFragmentation 数字对超过 10% 的任何情况发出警告,我想知道的是百分比是如何计算的,因为它肯定不是碎片文件除以总文件数。
DefragRecommended :真
虚拟名称:I:\
平均文件大小:20277223990
每个文件的平均碎片数:1.11
簇大小:4096
多余的文件夹碎片:0
文件碎片百分比:54
碎片文件夹:1
免费空间:131237363712
可用空间百分比:24
可用空间百分比碎片:0
MFTPercentInUse : 10
MFT记录数:65
页面文件大小 : 0
总剩余碎片数:4
文件总数:35
总文件夹数:14
总碎片文件数:2
总MFTFragments :2
总 MFT 大小:606208
总页面文件片段数 : 0
总碎片百分比:27
已用空间 : 405626204160
卷名:
体积大小:53686356787
答案1
我在这里做出有根据的猜测,但我认为这与平均值有关支离破碎文件大小(例如有多少文件是碎片化的,有多少文件不是碎片化的),以及他们的大小占总文件的百分比。
例如,在我的一台生产服务器上,除了一个文件(恰好是数据库 MDF 文件)外,其他所有文件的碎片化程度均为 0%。这个 60GB 的文件有两个碎片,但总碎片化报告显示碎片化程度高达 73%。
希望这是有意义的。