Memory\\% Committed Bytes in Use 성능 카운터를 모니터링합니다.
시스템의 사용 중인 커밋된 바이트 비율(Memory\% Committed Bytes In Use)이 임계값을 초과했습니다. 전체 시스템 성능이 크게 저하될 수 있으며 이로 인해 운영 체제 및 응용 프로그램의 성능이 저하될 수 있습니다.
% Committed Bytes In Use 성능 카운터는 Memory\Commit Limit에 대한 Memory\Committed Bytes의 비율을 나타냅니다. Committed Bytes는 커밋된 가상 메모리의 양이고 Commit Limit는 페이징 파일을 확장할 필요 없이 커밋할 수 있는 가상 메모리의 양입니다.
이 성능 임계값을 초과하면 페이지 파일을 확장할 수 없거나 응용 프로그램 메모리 요구 사항을 만족시킬 만큼 빠르게 확장할 수 없게 됩니다.
사용 가능한 실제 메모리 크기는 다음 상황에서 부족해질 수 있습니다.
컴퓨터에서 너무 많은 응용 프로그램을 동시에 실행 중인 경우
시간이 지남에 따라 애플리케이션의 메모리가 누수되는 경우
과다한 페이징이 발생하고 있는지 확인하려면 Avg. 디스크 전송 시간/초(실제 디스크 카운터) 및 Pages/sec 카운터 값을 추가하십시오. 이러한 카운터의 곱이 0.1을 초과하는 경우 디스크 액세스 시간의 10% 이상을 페이징이 사용하는 것입니다. 이 오류가 오랫동안 발생하는 경우 더 많은 메모리가 필요합니다.
그 다음에는, 응용 프로그램 실행으로 인한 과다한 페이징이 있는지 확인하십시오. 가능하면 가장 높은 작업 집합 값을 가지는 응용 프로그램을 중지하고 페이징 속도가 크게 변하는지 확인하십시오. 과다한 페이징이라고 생각되면 시스템 모니터에서 Pages/sec 카운터를 확인하십시오. 메모리 개체 유형의 일부인 이 카운터는 실제 메모리에 없기 때문에 디스크에서 읽어야 하는 페이지 수를 보여줍니다. 이 카운터와 Page Faults/sec의 차이점에 주의하십시오. Page Faults/sec는 메모리에 지정된 작업 집합에서 즉시 사용할 수 없는 데이터만 나타냅니다.
실제 메모리 부족 상태를 해결하기 위해 관리자는 다음 옵션을 하나 이상 선택할 수 있습니다.
하나 이상의 응용 프로그램, 서비스, 프로세스를 닫거나 중지합니다.
컴퓨터에 실제 메모리를 추가합니다.
응용 프로그램을 하나 이상의 추가 컴퓨터로 이동합니다(서버에만 해당됨).
시스템에 실제 메모리와 응용 프로그램 로드가 적절히 프로비저닝되었지만 시간이 지남에 따라 사용 가능한 실제 메모리 임계값을 계속 초과하는 경우 응용 프로그램에서 메모리가 누수되는 것일 수 있습니다. 메모리가 누수되는 응용 프로그램을 확인하기 위해 관리자는 다음을 수행할 수 있습니다.
시스템 모니터를 열고 시간을 두고 다음 시스템 범위 성능 카운터를 모니터링합니다.
페이징 파일\사용률
페이징 파일\비율
메모리\풀 비페이징 바이트
메모리\풀 페이징 바이트
이중 시간이 지남에 따라 계속 증가하는 카운터가 있는 경우 응용 프로그램에서 메모리가 누수되는 것일 수 있습니다. 이러한 성능 카운터에 대한 최근 기록을 보려면 다음 보기를 사용하면 됩니다.
시스템의 메모리가 누수되는 것으로 나타나는 경우 시스템 모니터에서 실행 중인 각 프로세스에 대해 다음 카운터를 모니터링하여 특정 응용 프로그램을 확인할 수 있습니다.
프로세스\페이지 파일 바이트
프로세스\풀 비페이징 바이트
프로세스\풀 페이징 바이트
프로세스\전용 바이트
프로세스\스레드 수
이러한 카운터가 지속적으로 크게 증가하는 것이 관찰되는 경우 응용 프로그램 공급업체에 지원을 요청해야 할 수 있습니다.
Target | Microsoft.Windows.Server.10.0.OperatingSystem | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Instance Name | Memory | ||
Counter Name | \% Committed Bytes In Use | ||
Frequency | 120 | ||
Alert Generate | True | ||
Alert Severity | Error | ||
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.10.0.OperatingSystem.PercentCommittedBytesInUse" Accessibility="Public" Enabled="false" Target="ServervNext!Microsoft.Windows.Server.10.0.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.10.0.OperatingSystem.PercentCommittedBytesInUse.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters/>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
<OperationalState ID="OverThreshold" MonitorTypeStateID="ConditionTrue" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% Committed Bytes In Use</CounterName>
<ObjectName>Memory</ObjectName>
<InstanceName/>
<Frequency>120</Frequency>
<Threshold>80</Threshold>
<Direction>greater</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>