I am trying to identify the cause of internal memory pressure. From what I have learned, Resource Monitor Ring Buffer returns an indicator for internal pressure. For example by using this query,
SELECT Top (1) *
FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR'
The XML results (within the resource monitor tag):
<ResourceMonitor>
<Notification>RESOURCE_MEMPHYSICAL_LOW</Notification>
<IndicatorsProcess>2</IndicatorsProcess>
<IndicatorsSystem>0</IndicatorsSystem>
<NodeId>0</NodeId>
<Effect type="APPLY_LOWPM" state="EFFECT_OFF" reversed="0">0</Effect>
<Effect type="APPLY_HIGHPM" state="EFFECT_IGNORE" reversed="0">100789</Effect>
<Effect type="REVERT_HIGHPM" state="EFFECT_OFF" reversed="0">0</Effect>
</ResourceMonitor>
In this article by Bob Dorr, shrinking signal from Memory Broker could create internal memory pressure and reflect in resource monitor notification with IndicatorsProcess = 2 (IDX_MEMPHYSICAL_LOW)
as shown above.
This article by Slava Oks shows another way of checking internal memory pressure with RING_BUFFER_SINGLE_PAGE_ALLOCATOR
. I don't know much about this particular ring buffer because I never seen it in my environment.
SELECT Top (1) *
FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = 'RING_BUFFER_SINGLE_PAGE_ALLOCATOR'
The XML result this time:
<Pressure status="0"><AllocatedPages>477</AllocatedPages>
<AllAllocatedPages>477</AllAllocatedPages>
<TargetPages>31553</TargetPages>
<AjustedTargetPages>31553</AjustedTargetPages>
...
</Pressure>
My question is, which internal processes may be contributing to internal physical memory pressure that will turn on this indicator = 2 (IDX_MEMPHYSICAL_LOW)
? What I see from resource monitor indication of internal physical memory pressure, these are among them:
Memory broker shrink operation (e.g. cache cleanup) which can be identified through memory broker ring buffer,
Max Server Memory setting change and,
Buffer pool stolen page > 75% (as I am not seeing it reflected from single page allocator ring buffer)
But are there others, too? And is there any record/log to identify them through DMV or other mean?