SAP Hana - Memory Pool (global_allocation_limit)

1 - About

memory pool in Hana.

SAP HANA preallocates and manages its own memory pool, used for storing:

  • in-memory data and system table ,
  • code and thread stacks (~=6 Gb),
  • temporary (results|computation),
  • and other system data structures.

SAP HANA manages its own data memory pool by requesting memory from the OS, possibly in advance of using it.

At any given point, only parts of the memory pool are really in use. SAP refers to the total amount of memory actually in use as the SAP HANA Used Memory.

This is the amount used for licensing. If You have a server with 512GB, but purchased an SAP HANA license for only 384 GB. You set the global_allocation_limit to 393216 (384 * 1024 MB).

2 - Articles Related

Advertising

3 - Limit

When more memory is required for table growth or temporary computations, the SAP HANA memory manager obtains it from the pool. When the pool cannot satisfy the request, the memory manager increases the pool size by requesting more memory from the operating system, up to a predefined allocation limit.

3.1 - Exhaustion

Once the allocation limit has been reached and the pool is exhausted, the memory manager can no longer allocate memory for internal operations without first giving up something else:

  • Buffers and caches are released,
  • Column store tables are unloaded, column by column, based on a least-recently-used order, up to a preset lower limit. See the view: M_CS_UNLOADS

Example: number of unloads during a particular one-hour time-slot:

SELECT COUNT(*) FROM M_CS_UNLOADS WHERE UNLOAD_TIME BETWEEN '19.08.2013 09:00:00' AND '19.08.2013 10:00:00'

4 - global_allocation_limit

By default, the allocation limit is set to 90% of the first 64 GB of physical memory on the host plus 97% of each further GB.

4.1 - Display

4.1.1 - Studio

Advertising

4.1.2 - Sql

SELECT HOST, round(ALLOCATION_LIMIT/1024/1024/1024, 2) AS "Allocation Limit GB" FROM PUBLIC.M_HOST_RESOURCE_UTILIZATION

4.2 - Modification

4.2.1 - Studio

Administration > Overview

4.2.2 - Sql

Change the Global Memory Allocation Limit

The global_allocation_limit parameter is used to limit the amount of memory that can be used by the database.

The value is the maximum allocation limit in MB.

Default:

  • A missing entry or a value of 0 results in the system using the default settings. The global allocation limit is calculated by default as follows:

 

  • > 64 Gb: 90% of the first 64 GB of available physical memory on the host plus 97% of each further GB.
  • < 64 Gb: Physical memory minus 1 GB.

Example:

ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('memorymanager', 'global_allocation_limit') = '8192' WITH RECONFIGURE;

Advertising

5 - Documentation / Reference

db/hana/memory/memory_pool.txt · Last modified: 2018/12/15 14:39 by gerardnico

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值