Начиная с SAP Kernel 7.40 (ядро, которое поставляется в паре с системой SAP NetWeaver 7.4), в организации памяти в SAP AS ABAP были произведены два крупных нововведения:
Как я уже упоминал в этом и этом постах, SAP Roll Memory состоит из SAP Roll buffer и SAP Roll file и служит для хранения контекста пользователя (имя, полномочия, значения по умолчанию и т.д.). Схемы выделения памяти для диалогового и не-диалогового процессов (в Unix системах), описанные мной тут, выглядят следующим образом:
В SAP NetWeaver 7.4 схема выделения памяти значительно упростилась:
Описание схем можно найти в SAP note # 941735 - SAP memory management system for 64-bit Linux systems.
Формулы для всех параметров, значения которых рассчитываются в рамках ZAMM, можно найти в SAP note # 2085980 - New features in memory management as of Kernel Release 7.40.
- упразднение SAP Roll memory,
- введение Zero Administration Memory Management (ZAMM) для Unix систем.
Как я уже упоминал в этом и этом постах, SAP Roll Memory состоит из SAP Roll buffer и SAP Roll file и служит для хранения контекста пользователя (имя, полномочия, значения по умолчанию и т.д.). Схемы выделения памяти для диалогового и не-диалогового процессов (в Unix системах), описанные мной тут, выглядят следующим образом:
- диалоговый процесс: Roll memory (1) -> Extended memory -> Roll memory (2) -> Heap memory.
- не-диалоговый процесс: Roll memory -> Heap memory -> Extended memory.
В SAP NetWeaver 7.4 схема выделения памяти значительно упростилась:
- диалоговый рабочий процесс: Extended memory -> Heap memory.
- не-диалоговый рабочий процесс: Heap memory -> Extended memory.
Описание схем можно найти в SAP note # 941735 - SAP memory management system for 64-bit Linux systems.
Таким образом, SAP параметры ztta/roll_area, ztta/roll_first, rdisp/ROLL_MAXFS и rdisp/ROLL_SHM были удалены (источник). Напомню, что все параметры я перечислил в этом посте.
Все данные, которые раньше хранились в SAP Roll memory, теперь хранятся в Extended Memory.
В транзакции ST02 строка с SAP Roll memory присутствует в виде рудимента (рис. 1 и 2).
![]() |
Рис. 1. Основной экран транзакции ST02 в системе SAP NetWeaver 7.4. |
![]() |
Рис. 2. Список SAP параметров для настройки памяти в SAP AS ABAP. |
В системе появился отчет RSMEMORY (запуск через транзакцию SA38/SE38) (рис. 3), который позволяет настраивать схемы выделения памяти для диалоговых и не-диалоговых рабочих процессов (схема выделения будет действовать только для текущей инстанции и только до перезапуска). Подробности тут.
![]() |
Рис. 3. Отчет RSMEMORY. |
Вторая большая особенность системы на базе SAP Kernel 7.4x это введение ZAMM для Unix систем. До этого момента ZAMM был доступен для систем MS Windows (я описывал тут) и для 32-х битных Linux систем (подробности тут).
ZAMM, в данном случае, настраивается аналогичным образом. Меняем значение параметра PHYS_MEMSIZE, если необходимо (по-умолчанию, равен размеру физической памяти, установленной на сервере)(рис. 4).
![]() |
Рис. 4. Параметр PHYS_MEMSIZE. |
В отличие от систем на платформе MS Windows, Extended Memory в Unix статична:
em/max_size_MB = em/initial_size_MB = 70 % от PHYS_MEMSIZE (рис. 5 и 6).
![]() |
Рис. 5. SAP параметр em/initial_size_MB. |
![]() |
Рис. 6. SAP параметр em/max_size_MB. |
Формулы для всех параметров, значения которых рассчитываются в рамках ZAMM, можно найти в SAP note # 2085980 - New features in memory management as of Kernel Release 7.40.
Стоит отметить еще пару моментов. Как я упоминал в этом посте, внутри Extended Memory выделяют область, которая называется Extended Global Memory (сокращенно EG). Данная область определяется параметром em/global_area_MB и составляет около 5-10 % от Extended Memory (SAP note # 1514752 - Extended Global Memory configuration). Начиная с SAP Kernel 7.40, в Extended Global Memory перенесли Table Buffer, который хранит записи таблиц на уровне сервера приложений SAP. И все это хранится в Extended Memory (рис. 7).
![]() |
Рис. 7. Содержимое Extended Memory в SAP AS ABAP. |
Таким образом, в новой версии SAP NetWeaver Extended Memory содержит больше областей, чем в предыдущих версиях. Это означает, что при равных значениях параметра em/initial_size_MB в ранних релизах и в SAP NetWeaver 7.4, в последней может наблюдаться недостаток данной памяти для работы пользователей. Особенно следует учитывать данную деталь в случае обновления системы до версии SAP NetWeaver 7.4 с предыдущих версий. На основном экране транзакции ST02 перенос Table Buffer в EG легко прослеживается (рис. 1).
Начиная с SAP NetWeaver 7.40 SPS08 (SAP Kernel 7.42), появляется новый вид памяти - PROC/Heap Memory, который принадлежит рабочим процессам (то есть является локальным), но не содержит контекст пользователя, как Heap Memory. Лимит, определяющий максимальное количество данной памяти для всех рабочих процессов, определяется параметром em/proc_max_size_MB. Значение по-умолчанию равно 0, что означает без ограничений. При введении ограничения рекомендуется выделять по 100 Мб на рабочий процесс.
Подробности в SAP note # 2019744 - How to limit overall swap space consumption of the ABAP Server in NW 7.40 .