SAP HANA – problem with allocator: Pool/RowEngine/GlobalHeap
In HANA version: 2.00.048 You can observe some memory leak. The problem is mainly visible in this collector: Pool/RowEngine/GlobalHeap. It can use 70-80GB of RAM and more during calculations. SAP note 1999997 indicates that the problem can only occur until Hana 2.00.046 but we already know that’s not true. Meanwhile a note 2902494 says about leaks on this pool, but still doesn’t provide a solution. Parallel to the above allocator, you may also observe a problem with another allocator i.e. Pool/RowEngine/QueryExecution/SearchAlloc.
Solution
You can consider several options…
- At the beginning check how much memory the allocator is using.
hdbcons "mm bl -t Pool/RowEngine/GlobalHeap" ... Top 20 allocators: Pool/RowEngine/GlobalHeap: 74.96gb (80491558840b) (337855404 blocks) [OK] ## Finish command at: 2021-05-## 00:07:05.735 command took: 3.353 min [EXIT] [BYE]
2. You can try to disable ESX engine and monitor whether the issue persists. But be careful, disabling ESX can have negative performance impact. Please look to note: 2599949
ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM' ) SET ('sql', 'esx_level') = '0' WITH RECONFIGURE
This parameter change can easily be reverted by running the following as mentioned below:
ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM' ) UNSET ('sql', 'esx_level') WITH RECONFIGURE
3. I found also others notes which they confirm this is the known issue in SAP HANA 2.0 SPS 04 Rev 48. You should refer to this SAP Note for more information: 2982247 – Memory Leak in Pool/RowEngine/QueryExecution/SearchAlloc
Workaround 1:
This is as per the SAP Note 2982247 – Memory Leak in Pool/RowEngine/QueryExecution/SearchAlloc
Apply one of the following SAP HANA Revisions:
SAP HANA 2:
- Revisions >= 048.03 (SPS04)
- Revisions >= 053.00 (SPS05)
- or higher
Workaround 2:
I would like to focus mainly on the allocator “Pool/RowEngine/QueryExecution/SearchAlloc”. This allocator is in relation to executed SQL statements. I would recommend reviewing the note 1999997 – FAQ: SAP HANA Memory under the heading “Pool/RowEngine/QueryExecution/SearchAlloc” and also the section around optimising SQL statements that increase the memory usage on the allocator “Pool/RowEngine/QueryExecution/SearchAlloc” under “19. Which general optimizations exist for reducing the SQL statement memory requirements?”
You can also use the following steps to check your specific expensive statements: In Hana Studio -> Admin View -> Performance. Go to the expensive statements trace.
Here you can order by memory size and see the statements that used the most memory.
Useful note:
2620830 – How To Record SAP HANA Memory Allocator Traces to Analyze Memory Leaks