The monitor reports a critical state and raises an alert when the amount of memory used by the resource pool is greater than the Threshold setting, expressed as a percentage of memory available for Memory-Optimized Data tables for the given resource pool. This monitor is a dependency (rollup) monitor.
The monitor reports a critical state when the amount of memory used by the resource pool is greater than the Threshold setting, expressed as a percentage of memory available for Memory-Optimized Data tables for the given resource pool. This monitor is a dependency (rollup) monitor.
When mapped to database with memory-optimized tables, the above mentioned resource pool tracks memory allocated to all memory-optimized tables, including internal tables that are used for various structures within Memory-Optimized Data engine.
Managed Instance Memory-Optimized Data uses more memory and in different ways than Managed Instance does. It is possible that the amount of memory you installed and allocated for Memory-Optimized Data becomes inadequate for your growing needs. If so, you could run out of memory.
Please refer to this article for more details: Bind a Database with Memory-Optimized Tables to a Resource Pool.
To resolve your Low Memory or Out Of Memory condition, you need to either free the existing memory by reducing usage, or make more memory available to your Memory-Optimized data tables. Possible corrective actions may include the following:
Check if there are long-running transactions that prevent garbage collection of memory. If yes, consider killing the long-running transactions and/or look into the design of the application to see if you can reduce the duration of the transactions.
Free the existing memory.
Delete non-essential Memory-Optimized table rows and wait for garbage collection.
Move one or more rows to a disk-based table.
Increase value of MAX_MEMORY_PERCENT on the resource pool.
Increase memory available to Managed Instance by setting the Max Server Memory to a higher value.
Install additional memory.
Name | Description | Default Value |
Enabled | Enables or disables the workflow. | Yes |
Generates Alerts | Defines whether the workflow generates an Alert. | No |
Target | Microsoft.Azure.ManagedInstance.Database |
Parent Monitor | System.Health.PerformanceState |
Algorithm | WorstOf |
Source Monitor | Microsoft.Azure.ManagedInstance.Monitor.UserResourcePool.MemoryConsumption |
Relationship | Microsoft.Azure.ManagedInstance.DatabaseReferencesUserResourcePool |
Category | PerformanceCollection |
Enabled | True |
Alert Generate | False |
Alert Auto Resolve | False |
Remotable | True |
Accessibility | Public |
<DependencyMonitor ID="Microsoft.Azure.ManagedInstance.Rollup.Database.MemoryConsumption" Accessibility="Public" Enabled="true" Target="MngdInstD!Microsoft.Azure.ManagedInstance.Database" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" RelationshipType="MngdInstD!Microsoft.Azure.ManagedInstance.DatabaseReferencesUserResourcePool" MemberMonitor="Microsoft.Azure.ManagedInstance.Monitor.UserResourcePool.MemoryConsumption">
<Category>PerformanceCollection</Category>
<Algorithm>WorstOf</Algorithm>
<MemberUnAvailable>Error</MemberUnAvailable>
</DependencyMonitor>