1) Il faudrait regarder le contenu des deux trois derniers ring buffers pour ring_buffer_type = 'RING_BUFFER_MEMORY_BROKER':
select top 3 timestamp, record from sys.dm_os_ring_buffers where ring_buffer_type = 'RING_BUFFER_MEMORY_BROKER' order by timestamp desc
Si Notification = GROW, alors pas de problème pour allouer.
2) Si tu as une pression mémoire externe à SQL Server:
select timestamp, record from sys.dm_os_ring_buffers where ring_buffer_type = 'RING_BUFFER_RESSOURCE_MONITOR'
Rechercher des occurences du style:
1 2 3 4 5 6 7 8
| (...)
<ResourceMonitor>
<Notification>RESOURCE_MEMPHYSICAL_LOW<
/Notification>
<Indicators>2</Indicators>
<NodeId>0</NodeId>
</ResourceMonitor>
(...) |
3) Sampler le compteur perfmon '\SqlServer:Buffer Manager\Page Life Expectancy' sur une ou deux heures et regarder si les valeurs tombent sous les 300 secondes.
4) Y a-t-il d'autres consommateurs mémoire (IIS, java) qui tournent sur cette machine en concurrence avec SQL Server ?
5) Si tu peux nous mettre en PJ le résultat d'un DBCC MEMORYSTATUS, ça doit faire 1200/1300 lignes sur une machine sans NUMA node.
Partager