cancel
Showing results for 
Search instead for 
Did you mean: 

What is SAP HANA Resident memory reclaim process for multiple HANA DBs on one host

sanjaysahita1
Explorer
0 Kudos

Hi,

What is SAP HANA Resident memory reclaim process for multiple HANA DBs on one host.

So If there are more than one hana systemdb instances (several Multi tenant DBs) and each having several tenant DBs on a single host, we could end up in RAM shortage if total resident memory of all HANA DBs exceeds RAM installed on server ?

Two hana systemdb instances have shared memory. Nor can they “talk” to each other and trade unused memory pages with each other. Any such page reclaim would have to be via OS level. Which is not happening without instance restart.

We have 2.5 TB on a Production HANA Server. In our case, Tenant A1 in SystemDB A does in fact consume 1,5TB of RAM. Then there is second Tenant B1 in SystemDB B which consumes 700 GB of Resident Memory. So this makes RAM consumption upto 2.2 TB.

For tenant A1 in System DB A; Resident memory is 1.5 TB and Used Memory is just 800 GB.

Will this tenant ever release Resident memory back to OS if other Tenant B1 in Other System DB B needs huge RAM so that there is no OOM situation faced and how would different tenants in different System DBs balance this or there will be situation that we run out of RAM on tenant B If total consumption crosses 2.5 TB of alloted RAM for overall resident memory of both HANA System DBs + Tenant DBs RAM consumption ?

Best Regards,

Sanjay Sahita

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Sanjay,

first of all: It is not supported to run multiple productive HANA MDC installations on one host - unless you have an explicit allowance. Assuming that your systems are not productive...

In general, system A will not release any unused memory for system B. But for each system, you can restrict the global_allocation_limit in global.ini section [memorymanager]. By default, each system is allowed to allocate up to 90% of total memory. So, you could set system A & B both to allocate at most 1 TB each. But this will in turn cause problems if one of your systems should require more than 1TB.

The problems you have are of general MCOS nature and are not really related to MDC in specific. The question from my point of view is: Why do you even need two MDC installations? Why don't you use one installation with two tenant databases instead? In that case, both tenants could easily share memory between their processes.

Best regards,

Stefan

sanjaysahita1
Explorer
0 Kudos

Hi Stefan,

Thanks a ton for your valuable response.

So do you mean that no HANA DB will release resident memory back to OS from its free pool if another HANA MDC DB needs it as they cant even talk to each other ?

Our main challenge is with Resident Memory and not Used Memory.  As Used Memory for a particular tenant DB shows 800 GB and Resident memory shows 1500 GB which is too high or near double.

Factors like continuous availability of some critical SAP Systems vs other and staged Upgrades of HANA DBs and their (possible) cross dependencies with NW/ERP Stacks of ERP Systems in underlying tenants are making it necessary to put multiple MDC installations on a host.

Also putting everything in same MDC sort of causes unavailability of all tenants ; if that system db crashed for some reason and is undergoing recovery.

Can you give some mention of SAP Notes / KBAs where does it say that such a scenario is not supported for production systems ?

BR,

Sanjay Sahita

Former Member
0 Kudos

Hi Sanjay,

sorry, I was slightly misinformed there. For a single-host system, you are allowed to install multiple MDC systems. This applies only to multi-host / scale-out systems.

Concerning the release of resident memory: I'm not an expert w.r.t memory management, but as far as I know, yes, a separate installation A will not yield memory to a second installation B if that runs out of memory.

Best regards,

Stefan