DB Engine Stolen Server Memory is too high I get error from System Center Operations Manager (SCOM).

How to solve this error? 


  SQL DB 2012 Engine Stolen Server Memory is too high.


I run query and get this counters:

╔═══════════════════════════════╦═════════════╗
║ Stolen Server Memory (MB)     ║ 7354.773437 ║
║ Lock Memory (MB)              ║ 106.195312  ║
║ Free Memory (MB)              ║ 64.632812   ║
║ Connection Memory (MB)        ║ 24.203125   ║
║ Log Pool Memory (MB)          ║ 14.085937   ║
║ Optimizer Memory (MB)         ║ 2.351562    ║
║ Granted Workspace Memory (MB) ║ 1.296875    ║
║ Cursor memory usage           ║ 0.000000    ║
║ Cursor memory usage           ║ 0.000000    ║
║ Cursor memory usage           ║ 0.000000    ║
╚═══════════════════════════════╩═════════════╝
How many times do you see such messages? If it is once or twice it can be ignored.

'Stolen memory' as described in this older support article and How to use the DBCC MEMORYSTATUS is:


  Stolen memory describes buffers that are in use for sorting or for hashing operations (query workspace memory), or for those buffers that are being used as a generic memory store for allocations to store internal data structures such as locks, transaction context, and connection information. The lazywriter process is not permitted to flush Stolen buffers out of the buffer pool. 


The memory is usually taken from Buffer Pool. If you run DBCC MEMORYSTATUS and the output shows you high Stolen Pages, this means that some process is stealing memory from buffer pool more that what is necessary and you need to find that process.

It's quite likely that there was some operation running which performed a huge sort operation and at same time SQL Server was heavily consuming memory thus leading to this message. Unless you are facing some OOM issue this message would be  more considered as a warning.