cancel
Showing results for 
Search instead for 
Did you mean: 

Memory consumption of indexserver is high

Former Member
0 Kudos

Hi Team,

I have a question.

Suppose i see a high memory consumption on the indexserver. What would be a good way to troubleshoot as to what caused the same?

Will this query help?

HANA_Memory_TopConsumers_History_Rev90+_ESS.txt

Any specific pointers since i am finding it hard to trace down to the SQL?

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member


Hi

There are many ways we can check memory consumption of Indexserver.


1. First check if any Job are running in the system which is causing high memory consumption on the Index Server. You can check by going to HANA Studio --> Performance tab --> Job Progress

2. Check with this SQL Query  "HANA_Memory_Overview.txt -- This will give you detailed information about memory consumption of all the components. This will tell you which component is consuming the memory in the system.

3. Check the SAP Note 1999997 FAQ:SAP HANA MEMORY

Mahesh Shetty

Former Member
0 Kudos

These will give information of present not of the past right.

I am checking SQL's for the past as well.

former_member183326
Active Contributor
0 Kudos

Hello,

As Lucas has already pointed out, there is more than enough material there for you to look at in terms of analyzing high memory consumption.

1: Did you see an OOM.trc in your system? Did you check this file for the top largest allocator? Was this allocator Pool/JoinEvaluator/JERequestedAttributes/Results? If so did you check the file for any large Query Plans for an executed statement? This can be done by search the file for "Query Plan". Then scroll through the file and pick large query plans and check if the SQL Query has been prepared and optimized correctly. (Statement Routing may not be happening See SAP Note 2079372 - SAP HANA - Statement Routing).

2: Did you just see a spike in memory? Did you run the nameserver.history trace in the HANA Studio in the Performance Tab? (I would recommend running this on the HANA Cockpit.). This will show you the time lines of the memory consumption and what time it began to rise.

3: Has this memory been rising for a while? This could be a memory leak if so, possible allocators to look out for in this case is Pool/RowEngine/MonitorView & Pool/malloc/libhdbrskernel.so. Again refer to SAP Note 1999997.

4: What allocators are consuming the most amount of memory? You can see this from the SQL you mentioned in your opening question.

5: If you ran this, which allocators are the top consuming allocators? Did you check this allocator with Note 1999997? This note give a description of the allocator and how to reduce its memory consumption

6: You can also check the executed statements trc file in the diagnosis tab in conjunction with the namerserver.ini file (what I mentioned in Point 2). Look for the time of the spike and then relate this with the executed statements to see which SQL was execute at that given time.

As you can see there are multiple ways to troubleshoot the high memory consumption so maybe be more specific next time

Former Member
0 Kudos

Hi michael,

My apologies for the brevity. I should have explained myself clearly.

To answer your first question : i dont see any oom dumps in the trace directory.

I had seen a general usage being high for some time. Suppose we have a node which is the master node is 1 TB usage never used to be as high as 900 GB.

Now i wanted to investigate as to what is the problem with the same.

Former Member
0 Kudos

Michael,

To answer your second question : it wasnt exactly a spike it was kind of aberration where the usage is going down slowly.

Hana cockpit i will check, i have the intervals in the past as to when the aberration had happened.

I havent checked for the memory leak since i didnt have the run time during the occurence. I can check the memory usage by allocators by SQL as well right?

I will check on the allocators memory usage and get back to you on this point.

Its a good point to refer the note as mentioned by you depending upon the allocators.

How do i get the executed statements trc file. I couldnt find the same.

yes true there are multiple ways, i wasnt looking for a standard process but a general approach which i should be taking when an issue occurs.

Thanks,

former_member183326
Active Contributor

Hi,

I would recommend using the HANA_Memory_TopConsumers_History SQL from the SAP Note 1969700.

This can check which allocators where the highest from a set period of time (this time frame can be changed in the script:

PS: I would recommend giving the people who give you help here a "Helpful Answer" reward as they have spent their time to help you. You might find people are more willing to help if you reward them, just a tip for the future.

Former Member
0 Kudos

Hi Michael,

Sure will do that, point noted as well.

Thanks,

lucas_oliveira
Advisor
Advisor
0 Kudos

Hi,

There are lots of options for high memory troubleshooting. I'd say start of with the official documentaion first: Memory Problems - SAP HANA Troubleshooting and Performance Analysis Guide - SAP Library

BRs,

Lucas de Oliveira

Former Member
0 Kudos

Lucas,

Thanks a ton for the information. I will have a look.

I was thinking what should be my approach?

How will i identify something if it has happened something in the past where i dont have a run time dump of what was running during that point of time.