監視效能計數器 Memory\MemoryPagesPerSecond
系統將記憶體分頁到磁碟並/或從磁碟分頁的速率過高。 這項監視以 “Memory\Pages/sec” 計數器為基礎,而該計數器是導致整個系統延遲這類錯誤的主要指示器。 整體系統效能可能會明顯降低。
Pages/sec 是為了解決硬體分頁錯誤而對磁碟讀寫分頁的速率。
一或多個應用程式正大量佔用記憶體,導致系統必須對磁碟來回分頁資料以滿足需求。
若要識別哪些處理程序造成系統的整體記憶體使用率提高,並瞭解分頁速率,請使用效能監視中「處理程序」物件中的下列計數器:
Page Faults/sec:Page Faults/sec 是在此處理程序中的執行緒發生分頁錯誤的速率。 當執行緒所參照照的虛擬記憶體分頁不在它的工作集主記憶體中時,就會發生分頁錯誤。 如果執行緒在待命清單中的話,就可能不會導致分頁被寫回磁碟,因為分頁已經在主記憶體中。如果執行緒已經被其他使用共用分頁的處理程序使用的話,發生錯誤的分頁也不會被寫回磁碟。
Pool Nonpaged Bytes:Pool Nonpaged Bytes 是未分頁集區的大小,該未分頁集區是系統記憶體 (作業系統所使用的實體記憶體) 中的區域,用於存放無法寫入磁碟、但只要已配置就必須保留在實體記憶體中的物件。 Memory\\Pool Nonpaged Bytes 的計算方式不同於 Process\\Pool Nonpaged Bytes,因此可能不等於 Process\\Pool Nonpaged Bytes\\_Total。 此計數器僅顯示最後觀察到的值,而不是平均值。
Pool Paged Bytes:Pool Paged Bytes 效能計數器會以位元組顯示分頁集區的大小,該分頁集區是系統記憶體 (作業系統所使用的實體記憶體) 中的區域,用於存放未使用時即可以寫入磁碟的物件。 Memory\\Pool Paged Bytes 的計算方式不同於 Process\\Pool Paged Bytes,因此可能不等於 Process\\Pool Paged Bytes\\_Total。 此計數器僅顯示最後觀察到的值,而不是平均值。
根據進一步調查的結果,解決方式將有所不同且可能包括下列其中一種:
套用作業系統或應用程式的更新,以確保任何已知的記憶體問題都能獲得解決。
減少系統執行的應用程式數目,或系統承擔的負載量。
增加更多 RAM 到系統。
Target | Microsoft.Windows.Server.2008.OperatingSystem | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Instance Name | Memory | ||
Counter Name | Pages/Sec | ||
Frequency | 300 | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | System.Performance.ConsecutiveSamplesThreshold | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Windows.Server.2008.OperatingSystem.MemoryPagesPerSecond" Accessibility="Public" Enabled="true" Target="Server2008!Microsoft.Windows.Server.2008.OperatingSystem" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SystemPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.2008.OperatingSystem.MemoryPagesPerSecond.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters/>
</AlertSettings>
<OperationalStates>
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Warning"/>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Pages/Sec</CounterName>
<ObjectName>Memory</ObjectName>
<InstanceName/>
<Frequency>300</Frequency>
<Threshold>5000</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>12</NumSamples>
</Configuration>
</UnitMonitor>