如何计算Win32_DefragAnalysis FilePercentFragmentation

SCOM 2007 R2增加了一个碎片分析健康检查,在我的许多服务器上产生警告。 为了试图理解SCOM是如何确定碎片级别的,我创build了以下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:是的

vname:I:\

AverageFileSize:20277223990

AverageFragmentsPerFile:1.11

ClusterSize:4096

ExcessFolderFragments:0

FilePercentFragmentation:54

碎片文件夹:1

自由空间:131237363712

FreeSpacePercent:24

FreeSpacePercentFragmentation:0

MFTPercentInUse:10

MFTRecordCount:65

PageFileSize:0

TotalExcessFragments:4

TotalFiles:35

TotalFolders:14

TotalFragmentedFiles:2

TotalMFTFragments:2

TotalMFTSize:606208

TotalPageFileFragments:0

TotalPercentFragmentation:27

UsedSpace:405626204160

卷名:

卷尺寸:53686356787

我在这里做了一个有根据的猜测,但是我认为这与平均分段文件大小有关(例如,有多less文件是分段的而不是相对的), 它们的大小占总文件的百分比。

例如,在我的一台生产服务器上,所有文件都有0%的碎片条,而恰好是数据库MDF文件。 60GB的文件有两个片段,但总的碎片报告指出73%。

希望是有道理的。