Quantcast
Channel: SAP Notes – Sap Hana Wiki
Viewing all articles
Browse latest Browse all 18

2112732 – Pool/RowEngine/MonitorView allocates large amount of memory

$
0
0

Symptom

Large amount of memory is allocated by Pool/RowEngine/MonitorView and never be reduced until system restart, when searching M_EXPENSIVE_STATMENTS monitoring view collected by use_in_memory_tracing feature.

Reason and Prerequisites

Since Revision70, a new feature of M_EXPENSIVE_STATEMENTS monitoring view was introduced. This feature is a performance enhancement by keeping the information of expensive statements in memory. It can reduce overhead of tracing/querying expensive statements. This feature can be turned on/off by ‘use_in_memory_tracing’ parameter in section [expensive_statement] of global.ini. Its default value is ‘true’.
  • global.ini
    [expensive_statement]
    use_in_memory_tracing = true

When information of expensive statements is stored in memory and M_EXPENSIVE_STATEMENTS monitoring view is searched with filter conditions (WHERE …) for one of following columns;

  • CONNECTION_ID
  • TRANSACTION_ID
  • STATEMENT_ID
  • DB_USER
  • APP_USER
  • START_TIME
  • OBJECT_NAME

Then, memory allocated by “Pool/RowEngine/MonitorView” for M_EXPENSIVE_STATEMENTS monitoring view won’t be released due to programming error.
You can check the memory size allocated by Pool/RowEngine/MonitorView with following sql

  • select exclusive_size_in_use from m_heap_memory where category = ‘Pool/RowEngine/MonitorView’

Solution

This programming error was fixed from Rev85.1 and higher version.
In Revision70 ~ 85, you can avoid this memory leak by turning off use_in_memory_tracing
  • alter system alter configuration (‘global.ini’, ‘system’) set (‘expensive_statement’, ‘use_in_memory_tracing’) = ‘false’;

Viewing all articles
Browse latest Browse all 18

Trending Articles