Modultyp för använt minne i procent
Microsoft.Windows.Server.10.0.OperatingSystem.PercentMemoryUsed.ModuleType (DataSourceModuleType)
Datakällmodultyp för insamling av mängd använt fysiskt minne.
Element properties:
Member Modules:
Overrideable Parameters:
Source Code:
<DataSourceModuleType ID="Microsoft.Windows.Server.10.0.OperatingSystem.PercentMemoryUsed.ModuleType" Accessibility="Public" Batching="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="PhysicalMemory" type="xsd:double"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="Tolerance" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="Frequency" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="MaximumSampleSeparation" type="xsd:integer"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Tolerance" Selector="$Config/Tolerance$" ParameterType="int"/>
<OverrideableParameter ID="Frequency" Selector="$Config/Frequency$" ParameterType="int"/>
<OverrideableParameter ID="NumOfSamples" Selector="$Config/MaximumSampleSeparation$" ParameterType="int"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="PerfDS" TypeID="SystemPerf!System.Performance.OptimizedDataProvider">
<CounterName>Available MBytes</CounterName>
<ObjectName>Memory</ObjectName>
<InstanceName/>
<AllInstances>false</AllInstances>
<Frequency>$Config/Frequency$</Frequency>
<Tolerance>$Config/Tolerance$</Tolerance>
<ToleranceType>Absolute</ToleranceType>
<MaximumSampleSeparation>$Config/MaximumSampleSeparation$</MaximumSampleSeparation>
</DataSource>
<ProbeAction ID="ScriptDS" TypeID="Microsoft.Windows.Server.10.0.PowerShellPropertyBagProbe">
<ScriptName>Microsoft.Windows.Server.OperatingSystem.PercentMemoryUsed.ps1</ScriptName>
<PSparam>param ($nAvailableMBytes, $nPhysicalMemoryKBytes)</PSparam>
<ScriptBody><Script>
#Copyright (c) Microsoft Corporation. All rights reserved.
#*************************************************************************
# $ScriptName: "Microsoft.Windows.Server.OperatingSystem.PercentMemoryUsed"$
#
#
# $File: Microsoft.Windows.Server.OperatingSystem.PercentMemoryUsed.ps1$
#*************************************************************************
# Parameters that should be passed to this script
# 0 Available Physical memory MBytes.
# 1 Total amount of Physical Memory in KBytes.
$sCounterName = "PercentMemoryUsed"
$sObjectName = "Memory"
Function Main()
{
$sErrorDescription = "Invalid arguments are detected: " + $nAvailableMBytes + " " + $nPhysicalMemoryKBytes
$dblAvailableMBytes = $nAvailableMBytes -as [double]
$dblPhysicalMemoryKBytes = $nPhysicalMemoryKBytes -as [double]
if (($dblAvailableMBytes -eq $null) -or ($dblPhysicalMemoryKBytes -eq $null))
{
ThrowScriptError $sErrorDescription $null
}
$dblPhysicalMemoryMBytes = $dblPhysicalMemoryKBytes / 1024
if ($dblAvailableMBytes -gt 0)
{
if ($dblAvailableMBytes -ge $dblPhysicalMemoryMBytes)
{
ThrowScriptError $sErrorDescription $null
}
$oBag = $momAPI.CreateTypedPropertyBag(2)
$nResult = [double](100 - ($dblAvailableMBytes/$dblPhysicalMemoryMBytes)*100)
$oBag.AddValue("PerfCounter", $sCounterName)
$oBag.AddValue("PerfValue", $nResult)
$oBag
}
}
Main
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>nAvailableMBytes</Name>
<Value>$Data/Value$</Value>
</Parameter>
<Parameter>
<Name>nPhysicalMemoryKBytes</Name>
<Value>$Config/PhysicalMemory$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
</ProbeAction>
<ConditionDetection ID="PerfMapper" TypeID="SystemPerf!System.Performance.DataGenericMapper">
<ObjectName>Memory</ObjectName>
<CounterName>$Data/Property[@Name='PerfCounter']$</CounterName>
<InstanceName/>
<Value>$Data/Property[@Name='PerfValue']$</Value>
</ConditionDetection>
<ConditionDetection ID="IsNullCD" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">/DataItem/IsNull</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">false</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<Composition>
<Node ID="PerfMapper">
<Node ID="ScriptDS">
<Node ID="IsNullCD">
<Node ID="PerfDS"/>
</Node>
</Node>
</Node>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>SystemPerf!System.Performance.Data</OutputType>
</DataSourceModuleType>