How to set allocation limit for tenant databases

You want to manage and control the memory usage of your multiple-container system by configuring global allocation limit for individual tenant databases.

Environment

HANA Platform Software Support Package Stack 09 and higher

Resolution

You can use allocationlimit in [memorymanager] to limit the maximum amount of memory that can be allocated to all processes of a tenant database.
For example, execute below command from the system database (allocationlimit value is in MB ):
<= SPS10

ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'DATABASE', '<Tenant_SID>') SET ('memorymanager', 'allocationlimit') = '8192' WITH RECONFIGURE;

>= SPS11

ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'DATABASE', '<Tenant_SID>') SET ('memorymanager', 'allocationlimit') = '8192' WITH RECONFIGURE;

Even through the configuration change takes effect immediately, a database restart is suggested as mis-handling of allocation memory could cause OOM and corrupt the data in memory.
After restart you can use SQL query:

SELECT * FROM "SYS_DATABASES"."M_SERVICE_MEMORY";

to confirm the changes with systemdb connection.
Alternatively you can check it with column "Allocation Limit(MB)" in Sevices tab under Landspace in HANA studio by logging on to the tenant DB.

 
2175606.JPG


This parameter won't be moved from indexserver.ini to global.ini automatically when upgrade from low revision to SPS11 or higher.
If you do not maually adjust it, the parameter in indexserver.ini works higher percedence than global.ini.

Source: SAP Note 2175606