From: Robert Dorr
Sent: Wednesday, February 10, 2010 9:31 AM
Subject: RE: Help Understanding Ring Buffer Notifications
This is a good ring buffer to start with but generally you need the MEMORY BROKER entries as well to tie it all together.
Blog was based on SQL 2008 and when I looked at the code for SQL 2005 I see the Indicators and it is not broken out like system and process.
indicators_bits
INDICATOR_MEMPHYSICAL_HIGH = 1
INDICATOR_MEMPHYSICAL_LOW = 2
INDICATOR_MEMVIRTUAL_LOW = 4
In your case it is a memory physical low indication. However, there is not an exposed system or process level on SQL 2005.
In this case the Effects are OFF so it is not a working set issue so you then have to look at the memory broker entries to see if a SHRINK was indicated which would be a process indicator versus the system indication.
Sent: Wednesday, February 10, 2010 8:53 AM
Subject: Help Understanding Ring Buffer Notifications
I was at a customer site recently and I collected some ring buffer info. It seems like the server is low on memory so I collected some ring buffers to see if I can find any more details. I haven't seen any detailed documentation regarding how to decipher these messages. Can someone point me to the right direction?
The ring buffer outputs are below. From the Available Physical Memory it looks like we're well below the 100MB threshold and I'd expect memory pressure notifications to occur. So question 1: How come there would be a RESOURCE_MEM_STEADY notification if Available MBs is so low.
Next we see the Resource_Memphysical_Low notification which is good. But what does this section mean:
Effect type="APPLY_LOWPM" state="EFFECT_OFF" reversed="0">0</Effect>
<Effect type="APPLY_HIGHPM" state="EFFECT_IGNORE" reversed="0">-2065788311</Effect>
<Effect type="REVERT_HIGHPM" state="EFFECT_OFF" reversed="0">0</Effect>
[[rdorr]] The effect type information is the working set of the process. In this case none are on so SQL has not detected that the working set has been trimmed without notification or such activities.
From my digging it looks like the notifications are telling SQL to ignore this message? Is that correct? And if so, why? Could it be because of LPIM?
In Bob Dorr's post http://blogs.msdn.com/psssql/archive/2009/09/17/how-it-works-what-are-the-ring-buffer-resource-monitor-telling-me.aspx
I should see something like this:
<IndicatorsProcess>2</IndicatorsProcess> <----------------------- Indicator applies to the process as low physical memory
<IndicatorsSystem>0</IndicatorsSystem> <----------------------- 0 means it is NOT a system wide indicator situation
But I don't, I only see a <Indicators> tag. Am I missing something. Help please.
Output 1:
- <Record id="212130" type="RING_BUFFER_RESOURCE_MONITOR" time="6524366015">
- <ResourceMonitor>
<Notification>RESOURCE_MEM_STEADY</Notification>
<Indicators>0</Indicators>
<NodeId>0</NodeId>
<Effect type="APPLY_LOWPM" state="EFFECT_OFF" reversed="0">0</Effect>
<Effect type="APPLY_HIGHPM" state="EFFECT_IGNORE" reversed="0">-2065788311</Effect>
<Effect type="REVERT_HIGHPM" state="EFFECT_OFF" reversed="0">0</Effect>
</ResourceMonitor>
- <MemoryNode id="0">
<ReservedMemory>589304</ReservedMemory>
<CommittedMemory>45928</CommittedMemory>
<SharedMemory>0</SharedMemory>
<AWEMemory>113936</AWEMemory>
<SinglePagesMemory>45880</SinglePagesMemory>
<MultiplePagesMemory>30096</MultiplePagesMemory>
<CachedMemory>15808</CachedMemory>
</MemoryNode>
- <MemoryRecord>
<MemoryUtilization>100</MemoryUtilization>
<TotalPhysicalMemory>523656</TotalPhysicalMemory>
<AvailablePhysicalMemory>46060</AvailablePhysicalMemory>
<TotalPageFile>2581908</TotalPageFile>
<AvailablePageFile>1719544</AvailablePageFile>
<TotalVirtualAddressSpace>8589934464</TotalVirtualAddressSpace>
<AvailableVirtualAddressSpace>8589099800</AvailableVirtualAddressSpace>
<AvailableExtendedVirtualAddressSpace>0</AvailableExtendedVirtualAddressSpace>
</MemoryRecord>
</Record>
Output 2:
- <Record id="212129" type="RING_BUFFER_RESOURCE_MONITOR" time="6524365960">
- <ResourceMonitor>
<Notification>RESOURCE_MEMPHYSICAL_LOW</Notification>
<Indicators>2</Indicators>
<NodeId>0</NodeId>
<Effect type="APPLY_LOWPM" state="EFFECT_OFF" reversed="0">0</Effect>
<Effect type="APPLY_HIGHPM" state="EFFECT_IGNORE" reversed="0">-2065788311</Effect>
<Effect type="REVERT_HIGHPM" state="EFFECT_OFF" reversed="0">0</Effect>
</ResourceMonitor>
- <MemoryNode id="0">
<ReservedMemory>589304</ReservedMemory>
<CommittedMemory>45928</CommittedMemory>
<SharedMemory>0</SharedMemory>
<AWEMemory>113936</AWEMemory>
<SinglePagesMemory>65920</SinglePagesMemory>
<MultiplePagesMemory>30256</MultiplePagesMemory>
<CachedMemory>35896</CachedMemory>
</MemoryNode>
- <MemoryRecord>
<MemoryUtilization>100</MemoryUtilization>
<TotalPhysicalMemory>523656</TotalPhysicalMemory>
<AvailablePhysicalMemory>46064</AvailablePhysicalMemory>
<TotalPageFile>2581908</TotalPageFile>
<AvailablePageFile>1719544</AvailablePageFile>
<TotalVirtualAddressSpace>8589934464</TotalVirtualAddressSpace>
<AvailableVirtualAddressSpace>8589099800</AvailableVirtualAddressSpace>
<AvailableExtendedVirtualAddressSpace>0</AvailableExtendedVirtualAddressSpace>
</MemoryRecord>
</Record>